|Hull FC (0) 16|
|Tries: Michaels, Washbrook, Shaul Goals: Sneyd 2|
|Castleford (20) 30|
|Tries: Minikin, Hampshire 2, Gale, Dorn, Milner Goals: Gale 3|
Two tries from Ryan Hampshire helped Castleford upset Super League leaders Hull FC at the KCOM Stadium.
The Tigers led 20-0 at half-time with tries from Hampshire, Greg Minikin, Luke Gale and Luke Dorn.
Rangi Chase's brilliant set-up gave Hampshire his second try, before Steve Michaels, Danny Washbrook and Jamie Shaul went over for the hosts.
But Adam Milner crossed late on to end Hull FC's late fightback and earn the Tigers a third win in four games.
The result might have been different had the Black and Whites not had two tries ruled out, as an offside call against Carlos Tuimavave denied Sika Manu a first-half try, and Michaels was pushed into touch just before he touched down after the break.
But Castleford were good value for the two points, combining inventive attacking play with solid defence until the leaders' late push.
Hampshire's two tries mean he has scored five in his last four games to help keep Castleford's slim play-off hopes alive, with the Tigers seven points outside the top four places.
Hull FC remain top, but only on points difference from Wigan, who beat Wakefield 60-12.
Hull FC head coach Lee Radford: "One team rolled their sleeves up and turned up the tempo and the other team didn't.
"Whether that's a physical thing or a mental thing, I don't know. It might have been a bit of both.
"It's the third time we've played Castleford this year and that's happened which is disappointing."
Castleford head coach Daryl Powell: "There were a couple of scrappy sets in there but once we tidied them up we put them under a lot of pressure.
"We didn't get a lot of attacking opportunities in the second half, and we made life difficult with errors and allowed them back in the game.
"It became a bit of a battle in the second half. We got tired and looked like a side that hadn't played in two weeks."
Hull FC: Shaul; Michaels, Tuimavave, Yeaman, Naughton; Abdull, Sneyd; Taylor, Houghton, Bowden, Manu, Pritchard, Ellis.
Replacements: Minichiello, Green, Thompson, Washbrook.
Castleford: Dorn; Hampshire, Crooks, Minikin, Solomona; Chase, Gale; Springer, Milner, Patrick, Holmes, Savelio, Moors.
Replacements: Jewitt, McShane, Cook, Millington
Referee: Jack Smith