|St Helens (16) 28|
|Tries: Swift, Vea, Dawson 2, McCarthy-Scarsbrook Goals: Walsh 4|
|Castleford (14) 22|
|Tries: Millington, McMeeken, Milner Goals: Gale 4, Crooks|
Matty Dawson scored two tries as St Helens twice fought back to end Castleford Tigers' unbeaten start to the Super League season.
Tigers' Grant Millington and Mike McMeeken crossed either side of Saints' Adam Swift inside 22 minutes.
Tigers then lost stand-off Ben Roberts to injury before Atelea Vea and Dawson tries put Saints 16-14 up at the break.
Louie McCarthy-Scarsbrook and Dawson ran in further Saints scores before Adam Milner reduced the arrears.
Defeat could prove costly for Tigers as prop Millington also went off injured in the second half with a hand problem.
Saints earned successive wins for the first time this season to move to within two points of the three teams above them in the table.
The hosts piled the early pressure on with six goal-line drop-outs, but Tigers came up with the game's first points as Millington crossed with their first meaningful attack.
After Swift pounced for Saints' response, fine work from Ben Crooks set McMeeken up for Cas' second try, but two tries in five minutes from Vea and Dawson saw Saints lead.
Crooks restored parity, but that is as good as it got for the visitors as McCarthy-Scarsbrook and Dawson efforts helped Saints open a comfortable lead before Milner added consolation score.
St Helens: McDonnell; Makinson, Peyroux, Dawson, Swift; Turner, Walsh; Walmsley, Roby, Amor, Vea, Wilkin, McCarthy-Scarsbrook.
Replacements: Tasi, Richards, Thompson, Fages.
Castleford: Dorn; Hitchcox, Crooks, Webster, Solomona; Roberts, Gale; Lynch, McShane, Millington, Moors, McMeeken, Jewitt.
Replacements: Milner, Massey, Cook, Maher.
Referee: James Child (RFL)