World champion Rossi, now 30 points clear of the Spaniard with four races left, started on pole for the first time at Misano but quickly dropped down to fourth before battling back up to first where he then sped away from the field. Lorenzo, who triumphed at Indianapolis last month when Rossi crashed, finished second after winning his duel with compatriot Dani Pedrosa.
"We've worked really well. We can consider it a perfect weekend," said Rossi, who wore a helmet with a donkey design after feeling stupid for tumbling in America.
"I thank all the fans, it's emotional. The championship has still a long way to go," he told Mediaset television.
The winner of eight world titles across classes had cast doubt on his Yamaha future on Friday when he questioned the policy of having two strong riders on the same team.
Lorenzo, who will race for Yamaha again next term, was not too disappointed with his race.
"Valentino has been great all week, he's been faster. We tried hard to put pressure on him but he was too far ahead," he said.
Pedrosa's third place was the first time the Honda rider had made the podium at Misano. Spain's Hector Barbera won in the 250cc category on the Aprilia, just ahead of Mattia Pasini and Alvaro Bautista.
Overall leader Hiroshi Aoyama of Japan was fourth in a thrilling contest but defending champion Marco Simoncelli tumbled to all but end his hopes this season.
Runaway championship leader Julian Simon took the 125cc race on the Aprilia after Italy's Andrea Iannone crashed into an angry Pol Espargaro on the final corner when leading.
The two then traded insults on the track and in the paddock.
Photograph: Reuters
Rossi says talked with Ferrari about Monza
Valentino Rossi wins Czech MotoGP
Rossi wins German MotoGP
Lorenzo beats Rossi in Yamaha one-two
Runaway Pedrosa wins Catalan MotoGP