Saints winger Regan Grace opened the scoring inside four minutes with an acrobatic finish in a game of few clear-cut chances due to bad weather.
Sneyd converted his own solo effort to level the scores just before the half-time break.
With few openings, Sneyd took a chance for two from the halfway line and his kick sailed over to snatch the win.
Grace will rue the chances he had to extend his team's lead after scoring the opening try in the first half, as he knocked on 20 metres out, before dropping a pass from Theo Fages in open space later on.
Sneyd's brilliant kick kept Hull in third place in the Super 8s table, while St Helens are fifth, one point behind fourth-placed Wakefield Trinity.
Hull FC head coach Lee Radford:
"That's one of our most significant wins of the season bar none.
"We had to win ugly and I was pleased when the heavens opened up because then I knew they were going to play with a bar of soap.
"Unfortunately it made for a really bad spectacle of a game but that is the biggest win we've had this year."
St Helens head coach Justin Holbrook:
"They dropped as much ball as us. Unfortunately it was one of the worst games of rugby league I have been involved in.
"I felt sorry for you guys and the fans for watching it. I was glad it wasn't on TV as it was embarrassing.
"There wasn't much in it and a 50-metre penalty goal was the difference. We didn't play well enough to get the victory."
St Helens: Lomax, Makinson, Morgan, Percival, Grace, Fages, Richardson, McCarthy-Scarsbrook, Roby, Thompson, Taia, Peyroux, Wilkin
Replacements: Smith, Walmsley, Amor, Knowles
Hull FC: Connor, Griffin, Thompson, Tuimavave, Michaels, Kelly, Sneyd, Taylor, Houghton, Watts, Turgut, Manu, Ellis
Replacements: Green, Washbrook, Fash, Matongo
Referee: James Child
Marc Sneyd's boot secured Hull a narrow victory in a scrappy game at St Helens in Super League.