Lorenzo won comfortably from Honda's championship leader and fellow Spaniard Dani Pedrosa, whose rookie team mate Marc Marquez crashed with two laps to go shortly after he had moved into second place at Mugello.
The crash allowed Britain's Cal Crutchlow to take third place for the Tech3 Yamaha team.
Pedrosa now has 103 points, with Lorenzo moving into second place on 91. Marquez, whose crash denied him the chance to become the first rider to finish on the podium in his first five MotoGP races, has 77.
"It wasn't an easy race for us because when it's hot it never is," said Lorenzo. "I gave it everything and I managed to make the difference. The last two races have been really hard but finally we've had a good day."
Pedrosa was relieved to at least finish second after starting out on pole.
"It was not my day today, we had many problems with this new tyre so we had to set up the bike in a different way," he said.
"We finished second on a day we didn't expect to do that well so it was a good day for the team."
Rossi crashed after Spanish Honda rider Alvaro Bautista appeared to clip him as they took the same line going into the third corner.
"We crashed; I didn't see anything," Bautista told the BBC. "Just when I went in to enter the corner I felt Rossi's bike and we fell down."
Crutchlow said he was happy with third but would have preferred to earn it by passing his rival.
"I hate to get gifted a podium, I want to work for it, but I was definitely working for it at the end," he said. "I was coming back to him (Pedrosa) quite fast and I think if I would have kept going anyway I would have been able to catch Dani and be on the podium.
"As soon as I saw him (Marquez) crash, I just eased up but I was close anyway."
- Sports & Recreation
- Dani Pedrosa
- Marc Marquez
- Cal Crutchlow