The Black and Whites opened the scoring in the 14th minute when a neat move from left to right saw Mahe Fonua sprint clear and cross in the corner.
Benjamin Jullien celebrated his 25th birthday with a try in the 23rd minute to draw Catalans level but the French team crossed again as Fouad Yaha scored in the corner, with Maloney converting to move them 10-4 ahead.
The hosts were back on level terms in the 33rd minute when Hull worked down the right edge once again, with Fonua crossing the whitewash for the second time.
Hull ensured they led at half-time when the hosts continued to dominate down the right wing, with Carlos Tuimavave, who replaced the injured Jake Connor moments earlier, scoring three minutes before the break for a 16-10 lead.
A knock-on by the Dragons gifted possession and the home side made them pay when Albert Kelly offloaded for Jamie Shaul, who sprinted 50 metres before crossing in the corner to make it a two-score lead.
Lee Radford’s team improved their advantage to 28-10 when Manu Ma’u produced a wonderful step to slice through the Catalans defence and bulldoze over Sam Tomkins for a try on his home debut.
However, the Dragons hit back after conceding 26 straight points with Jullien brushing past a Hull defender to slide over for his second try, which was quickly followed by Josh Drinkwater’s score under the posts.
Maloney converted both tries to reduce the deficit to six points and the scores were soon level when Samisoni Langi strolled over with 10 minutes remaining.
Sneyd hit a Hull-record 31st drop-goal to seemingly win it for the Black and Whites but James Maloney had the last word with a telling late try.
Hull: Shaul, Swift, Griffin, Connor, Fonua, Kelly, Sneyd, Taylor, Houghton, Sao, Ma’u, Lane, Ellis. Substitutes: Tuimavave, Satae, Fash, Bowden.
Catalans Dragons: S. Tomkins, Tierney, Langi, Folau, Yaha, Maloney, Drinkwater, Garcia, Whitley, Jullien, Casty, Bousquet, McIlorum. Substitutes: Seguier, Maria, Baitieri, Kasiano.
Referee: Gareth Hewer (RFL)