Márquez second, Crutchlow third and injured Lorenzo fifth at a phenomenal Dutch Grand Prix.
Valentino Rossi took the 80th MotoGP victory of his career and his first since the Malaysian GP in October 2010 at a pulsating Dutch Grand Prix at Assen.
In a race packed with stories the Yamaha Factory Racing rider hit the front on the sixth of 26 laps and looked smooth and in control as he rode to a win that delighted the crowd and also had an impact on the World Championship standings.
With Marc Márquez taking second, Cal Crutchlow third and Championship leader Dani Pedrosa fourth, Jorge Lorenzo's heroic ride to fifth less than 48 hours after having his broken collarbone plated and screwed meant that the gap between he and Pedrosa at the top of the overall standings is just nine points.
In a race packed with thrills pole man Crutchlow took a poor start and dropped to fifth, with Pedrosa shooting into first and holding the lead for the first few laps. Rossi, who started from the second row of the grid, slotted into third but before long had passed Márquez and then Pedrosa to assume top spot.
Lorenzo, who returned to Assen late on Friday afternoon after having surgery in Barcelona earlier that day, had climbed to sixth from 12th on the grid by the end of the first lap in a pain-defying display. At one stage of the race he ran in fourth and looked to be closing on the top three, but as the race wore on Crutchlow was able to take him back.
Towards the end Repsol Honda team-mates Pedrosa and Márquez started dicing for second position and after Márquez made a pass stick with around six laps to go Crutchlow then came through on Pedrosa too. The British rider tried to pass Márquez on the last lap and clipped the Spaniard's rear wheel, running off and thus ending his challenge but maintaining third.
All of this made little difference out front where Rossi was clear, and The Doctor crossed the finish line 2.2s ahead of Márquez for an emotional win, with the rookie and Crutchlow completing the podium.
With Pedrosa and Lorenzo rounding out the top five Stefan Bradl took sixth after starting from the front row for the first time in MotoGP.
After seven rounds Pedrosa has 136 points, Lorenzo 127 and Márquez 113.