Rossi then built a lead of almost two-seconds, before momentum swung back to Lorenzo, who reeled the #46 back in - then overtook the Italian superstar under braking for turn one on lap 17.
Lorenzo, riding in his astronaut livery, then rode away from Rossi to claim his eighth victory of the season - but first in seven starts - by a huge 8.629sec (the biggest of the year) from outgoing seven time MotoGP champion Rossi.
The result also means that Yamaha has completed a clean sweep of all three 2010 MotoGP titles - adding the 2010 Manufacturers' crown to the previously decided Riders' and Teams' World Championships.
Joining Lorenzo and Rossi on the podium was Repsol Honda's Dovizioso, but only after re-passing satellite RCV rookie Marco Simoncelli on the run to the line.
Dovizioso, Simoncelli and Hayden were covered by just 0.620sec at the flag, with Randy de Puniet (LCR) sixth and Colin Edwards (Tech 3) seventh.
Former title contender Dani Pedrosa, who withdrew from the Australian event after attempting an early return from a broken collarbone, ran as high as fifth before taking the flag in eighth.
Simoncelli's Gresini Honda team-mate Marco Melandri and Aspar Ducati's Hector Barbera completed the top ten.
38-year-old Carlos Checa, returning to MotoGP for the final two rounds in place of Mika Kallio at Pramac Ducati, retired with arm-pump at half race distance.
Checa's team-mate Aleix Espargaro was the other non-finisher, crashing out early in the race.
The 18th and final round of the 2010 MotoGP season, and Rossi's last race as a Yamaha rider, will be held at Valencia next weekend.
Portuguese Grand Prix:
6. de Puniet