Lorenzo finished 5.67 seconds ahead of Italy's world champion Rossi, who had started on pole position, with Italian Andrea Dovizioso grabbing third place for Honda on the last lap.
"Passing Valentino wasn't so easy because he was braking so deep and I had to be very patient, something that I might not have managed one year ago," said the Spaniard after his first back-to-back MotoGP wins.
"Finally I overtook him but I didn't expect to be able to get away like that," he added.
It was Lorenzo's second win in a row and completed a Yamaha hat-trick with Rossi winning the season-opener in Qatar in April.
The 23-year-old, who has 70 points to Rossi's 61, celebrated his latest win by pulling up a folding chair in front of one of the circuit's big screens and munching a bucket of popcorn as he sat back on the track.
It was the first time since 1980 that the Japanese manufacturer had started the season with three successive wins in the top category.
STONER SLIDES
Rossi led into the first corner ahead of Honda's Spanish rider Dani Pedrosa but Lorenzo quickly seized second place and then set about reeling in the Italian.
With Australian Casey Stoner sliding off his Ducati on the second lap, the former champion's second non-finish of the season, the focus was on the Yamaha team mates and Lorenzo made his move on lap seven.
The Spaniard took the lead but failed to make it stick and had to do it again three laps later. This time Rossi had no reply and Lorenzo pulled away to a comfortable distance.
"I did a great start and I tried to stay in front because I understood from the bike that I didn't have the same pace," said Rossi, who hurt his shoulder in a motocross accident last month. "I knew there was no way to stay in front for 28 laps."
Rossi said his main problem was with the set-up, with his bike lacking grip under acceleration.
Dovizioso started the final lap in fourth place but squeezed past Pedrosa to finish on the podium for the second time this season. American Nicky Hayden on a Ducati also passed Pedrosa for fourth place.
Toni Elias had earlier put Spain on top in the Moto2 category with his second win of the year, moving 18 points clear of Japan's Shoya Tomizawa.
Spain's winning sweep at Le Mans was started by Pol Espargaro, with his compatriots filling the next three places as well, in the 125cc class. Britain's Bradley Smith, in fifth place, was the first of the non-Spanish contingent.
Spain fill the top five places in the 125cc standings, with Nicolas Terol on 65 points and Espargaro on 63.
MotoGP: Rossi surges to victory at Misano
Rossi powers to Spanish GP victory
John Abraham unveils Yamaha YZF-R1 bike
Yamaha to launch new YZF-R1 in 2010
Yamaha to pump in Rs 800 crore