Justin Gatlin beat Olympic champion Usain Bolt by one-hundredth of a second to record a surprise 100m win in Rome.
Bolt, 26, was fastest out of the blocks at the Diamond League meeting but American Gatlin, 31, powered past the Jamaican to win in 9.94 seconds.
"I need two months to get ready so I am not worried," Bolt told BBC Sport.
In his first major meet since his early exit from the London 2012 Olympics, Phillips Idowu finished seventh in the triple jump in a season best of 16.44m.
The 34-year-old Briton produced the leap in the first round but failed his next two jumps and then passed on his final three jumps to bow out of the competition, which was won by America's Olympic and world champion, Christian Taylor, 22, with 17.08m.
Gatlin, however, looked in fine form as he maintained his unbeaten start to the season over 100m.
The 2004 Olympic champion, who went on to serve a four-year doping ban, recorded his third Diamond League success after victories in Doha and Eugene by the narrowest of margins.
Bolt had suffered a hamstring injury last month which hampered him in his opening race of the season in the Cayman Islands, where he could only manage a time of 10.09 seconds.
And although the six-time Olympic gold medallist, who was making his first appearance in the Diamond League this season, jumped well out of the blocks, he was blowing hard by halfway as Gatlin began to impose himself on the race.
However, the American had to dip his head on the line to beat the world record holder, with France's Jimmy Vicaut third in 10.02 seconds.
It was Bolt's first major international loss since his false-start disqualification at the 2011 World Championships in South Korea.
Bolt came second to Yohan Blake in the 100m and 200m at the Jamaican Olympic trials last July but went on to London 2012 success in both events. He was also beaten by Tyson Gay in August 2010 in Stockholm.