The home side went 0-12 behind in the opening minutes before recovering to trail 10-16 at halftime.
But a superb Todd Byrne break was brilliantly finished off by winger Patrick Ah Van in the 51st minute.
And with Steve Buckingham converting from wide out, the Vodafone Auckland Lions were on level terms at 16-16.
That lasted only briefly with the Dragons going back in front 18-16 with a Ryan Powell penalty.
But when Sonny Fai roared away for his 11th try of the year, the Vodafone Warriors were in front for the first time 20-18 and in sight of a stunning comeback win.
They couldn't hold on to the lead, though, with the Dragons grabbing the winner through hooker Tony Caine.
Mt Smart Stadium, Auckland:
Vodafone Auckland Lions 20 (Malo Solomona, Louis Anderson, Patrick Ah Van, Sonny Fai tries; Steve Buckingham 2 conversions).
St George Illawarra Dragons 24 (Tony Caine 2, Danny Wicks, Ronald Prince tries; Ryan Powell 3 conversions, penalty).
Halftime: 16-10 Dragons.