World record-holder Usain Bolt put his poor performance in the Czech Republic behind him with a season's best 9.76 seconds in the 100-meter race at the Golden Gala on Thursday.
Bolt ran a relatively slow 10.04 in Ostrava last week, raising questions about his Olympic preparations.
His previous world's best of 9.82 was set at home in Jamaica this month.
"My drive was better and I started well," Bolt said. "The transition was also better. After Ostrava a lot of people questioned me, but I never questioned myself.
"Everyone has a bad race, you just got to go back to the drawing board."
While his start in Rome still wasn't exceptional, Bolt quickly pulled in front and broke the previous meet record of 9.77 set by Tyson Gay three years ago.
Former world record-holder Asafa Powell crossed second in 9.91 and European champion Christophe Lemaitre was third in 10.04.
There was virtually no wind.
Powell didn't hear "set" or "go" from the starter.
"I'm very upset with my race tonight. I'm not upset that I lost but that I couldn't execute like I wanted to," Powell said. "I didn't get out of the starting block like I should. I was all over the track.
"I'm not even going to complain," Powell added. "Usain ran a great race, I just have to go home, work on it and come back."
Bolt attributed his problems in Ostrava to fatigue for his first race of the season in Europe. This time, he appeared energized even two hours before his race, when he warmed up the crowd with a lap around the track on a golf cart, wearing the shirt of Italy's football team as he danced and posed for the cameras.
The crowd of nearly 60,000 cheered Bolt's every move.
"I appreciate a great crowd, they gave me a lot of love," Bolt said. "I feed off the crowd, so that was good."
When he came back out to run, Bolt chatted with the race worker behind his lane before he stepped into the starting blocks. After the race, he grabbed an Italian flag as he celebrated with another lap around the track that hosted the 1960 Olympics.
"Since I arrived in Rome I made sure to be in in bed early. So I got a lot of rest and slept a lot," Bolt said. "In Ostrava I had not had enough sleep. This race was much better."
This was the third Diamond League meet of the year but Bolt's first.
Bolt will also compete in a Diamond League meet in Oslo, Norway, next week before returning to Jamaica for national trials. He then plans to return to Europe for a 200 in Monaco on July 20, his last race before the London Games start a week later.