Usain Bolt ran under 10s for the first time this year as he narrowly won the 100m at the Monaco Diamond League meeting.
The eight-time Olympic sprinting champion was slow out of the blocks, just as he was in his last race in Ostrava last month, and never managed to put a big gap between him and the field.
He won in 9.95s, three hundredths of a second ahead of American Isiah Young.
South Africa's Akani Simbine was third in 10.02.
Before the meeting, the Jamaican went to Germany to have treatment for back issues that have troubled him for years.
It was his last outing before next month's world championships in London where he will race in the 100m and 4x100m relay.
Olympic and world champion Wayde van Niekerk won a titanic battle against Botswana's Isaac Makwala to take the 400m.
The South African, also the world record holder in the event, made a lightning start, then Makwala recovered to lead coming off the final bend before Van Niekerk powered down the final straight to win in 43.73s.
Makwala's time of 43.84 was a personal best.
Van Niekerk's fellow South African, Caster Semenya, won a dramatic women's 800m in a season's best and meeting record time of 1:55.27.
The Olympic champion snatched the win in the last few metres ahead of Burundi's Francine Niyonsaba and Ajee Wilson, who both set national records. The trio had been neck and neck down the final straight.
Wilson's 1:55.61 shattered the previous U.S. record of 1:56.40 set by Jearl Miles-Clark in 1999.
Elijah Manangoi upstaged a strong field to win the men's 1500m in a year's best time of 3:28.80.
He sped past compatriot Timothy Cheruiyot on the final straight after the two broke clear of the field while Olympic champion Matt Centrowitz was well beaten in ninth.
Manangoi's fellow Kenyan, Emmanuel Korir, also ran the fastest time of the year as he won the men's 800m in 1:43.10.