Chris Kreider also scored for New York (36-28-4).
Dustin Byfuglien and Andrew Ladd scored for the Jets (30-29-9), who haven't won a game since Mar. 1 and are fighting to keep their playoff hopes alive. This time, the Jets failed to pick up a point as they have in three of their last six losses which went to overtime or a shootout.
It was a run-and-gun night for both teams. The Jets outshot the Rangers 32-23 but couldn't get past Henrik Lundqvist in the New York net after the first period.
The Rangers were wrapping up a three-game road trip and coming off a 2-1 loss in Minnesota Thursday, but came out fast and scored on just their third shot of the game.
Hagelin deflected his first past Winnipeg netminder Ondrej Pavelec at 1:15. The goal had barely been announced when Byfuglien evened things up at 2:33 as he batted Blake Wheeler's rebound past Lundqvist.
Less than a minute later, Ladd celebrated his 600th NHL game by putting the Jets up 2-1, when he found the upper corner of the New York net with a wrister from the faceoff circle on Lundqvist's stick side at 3:26.
Winnipeg was cycling the puck in the Rangers' zone until Kreider broke away and scored at 11:28 with Winnipeg defenceman Zach Bogosian on his heels.
Neither team managed a shot during their one power play each in the first period and the Jets outshot the Rangers 11-8.
Al Montoya took over for Pavelec in the Winnipeg net at the start of the second and the team reported that their starting netminder had an unspecified lower-body injury.
The Rangers and Jets traded plenty of scoring chances in the second and Winnipeg outshot New York 11-7. But with eight seconds left, Martin St. Louis fed Hagelin from behind the net and he flipped in a backhander.
He put in his third at 8:50 of the third period off a pass from Brad Richards on a two-man Rush that beat Montoya through the five hole.
Notes: This was the second meeting this year between the Rangers and Jets. Winnipeg won the first 5-2 at Madison Square Garden Dec. 2.