Jamaica's world record holder Usain Bolt was made to work for victory in the 100 metres at the Diamond League meeting in Oslo Thursday.
Compatriot Asafa Powell was quick out of the blocks and had the lead until the final 10 metres when Olympic champion Bolt came through to win in 9.79 seconds, a meeting record.
Powell's time of 9.85 seconds was his best of the season. Lerone Clarke completed a Jamaican sweep of the top three with a time of 10.10 seconds.
After crossing the line, Bolt collided with a flower girl on the track, catching her as she stumbled and then hugging her with a big grin on his face.
Powell, who had been well beaten by Bolt in Rome a week ago appeared much happier with his performance this time out. "It was a season best, which is what I need right now, to keep improving," the former world record holder told reporters.
"This is not the Olympics and I wasn't really training for this event. This means that it (the Olympics) is going to be awesome."
Australia's 100 metres hurdler Sally Pearson, who like Bolt is red-hot favourite to win her event at the London Olympics, appeared none the worse for wear after her 29-hour trip to Norway with a comfortable victory in 12.49, equalling her world leading time.
The world champion led from start to finish and finished clear of American Kristi Castlin, who was second in 12.56 seconds.
Britain's former heptathlon world champion Jessica Ennis was disqualified from the event for a false start. "My start was really good I thought. I started to fatigue a little towards the end which I think is quite understandable," the Pearson told reporters.
"I travelled 29 hours to get here so I'm a bit jet-lagged but I'm doing well.
"I think I put myself in the position I want to be in, I like being chased so it keeps me on my toes and it keeps me hungry to stay being the best in the world," she told the BBC.
Double Olympic champion Kenenisa Bekele's issues with form continued when he could manage fifth only over the 5,000 metres on a sunny evening. Bekele, hoping for an unprecedented third successive 10,000 metres gold in London, has struggled with calf and knee injuries in recent years.
The Ethiopian world record holder clocked 13 minutes 0.54 seconds. His brother Tariku had led the race into the final lap but compatriot Dejen Gebremeskel made his move with 200 to go and won in 12.58.92 minutes as Ethiopians took the top five places.
Olympic 1,500 metres champion Asbel Kiprop of Kenya strode away from the rest of the field in the final straight to win the Dream mile in 3:49.22 minutes.