World and Olympic champion Usain Bolt needed a late surge to narrowly beat fellow Jamaican Nesta Carter in the 100 metres with his season's best time of 9.88 seconds at the Monaco Diamond League meeting on Friday.
Bolt overhauled his compatriot, who also ran his season's best of 9.90, in the last 15 metres while American Michael Rodgers finished third with 9.96.
"It was not the best start, but I executed well overall," Bolt told reporters after finding his form in his last scheduled meeting ahead of next month's world championships.
"My last 60 metres have improved dramatically. I need to work on my reaction time, but I've been doing great in training, so I'm just focussing and I feel ready.
"My aim this season is to run 9.7, maybe 9.6. For me, this year it's about building myself and go into the Olympic season fit and ready. London (2012 Olympics) is the key," he added.
Bolt set his 100 metres record of 9.58 at the 2009 world championships in Berlin and will defend his title at the August 27-September 4 world championships in Daegu, South Korea.
He will face competition from compatriot Asafa Powell who set a world leading time of 9.78 in Lausanne last month.
Among the others athletes posting world leading times ahead of the worlds were 800 metres world record holder David Rudisha, the Kenyan winning in one minute 42.61 seconds.
Britain's Mo Farah also set the season's best time in the 5,000 as he beat American Bernard Lagat in a sprint to the line in a time of 12 minutes 53.11.
In the women's 200 Carmelita Jeter beat compatriot Allyson Felix, a three-time world champion at the distance, and Shalonda Solomon in an American clean sweep.
Olympic 400 hurdles champion Angelo Taylor held his nerve to defeat compatriot Bershawn Jackson while Britain's world champion Phillips Idowu won the triple jump with 17.36 metres.