Usain Bolt ran under 10 seconds for the first time this year as he narrowly won the 100 metres at the Monaco Diamond League meeting on Friday.
The eight-times 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.95 seconds, 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 100 metres and 4x100m relay.
"It was good, I'm going into right direction, still a lot of work to do," said Bolt, who is scheduled to retire after the world championships.
"I'm always here for the fans, and of course I will miss the vibe around the track. Mixed emotions always –– happy for my career, sad that it is ending. Sub 10 is always good. It was an exciting race, lots of energy."
Olympic and world champion Wayde van Niekerk won a titanic battle against Botswana's Isaac Makwala to take the 400 metres.
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.73 seconds.
Makwala's time of 43.84 was a personal best.
Van Niekerk's fellow South African, Caster Semenya, won a dramatic women's 800 metres 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 1500 metres in a year's best time of 3:28.80.
Manangoi's fellow Kenyan, Emmanuel Korir, also ran the fastest time of the year as he won the men's 800 metres in 1:43.10.
Men: 100M: Usain Bolt (Jam) 9.95, 1; Isiah Young (U S) 9.98, 2; Akani Simbine (SA) 10.02, 3.
400M: Wayde van Niekerk (SA) 43.73, 1; Isaac Makwala (Bot) 43.84, 2; Baboloki Tirelo Thebe (Bot) 44.26, 3.
800M: Emmanuel Korir (Ken) 1:43.10, 1; Brandon McBride (Can) 1:44.41, 2; Antoine Gakeme (Bur) 1:44.54, 3.
1500M: Elijah Manangoi (Ken) 3:28.80, 1; Timothy Cheruiyot (Ken) 3:29.10, 2; Ronald Kwemoi (Ken) 3:32.34, 3.
3000M steeplechase: Evan Jager (U S) 8:01.29, 1; Jairus Kipchoge Birech (Ken) 8:07.68, 2; Stanley Kipkoech Kebenei (U S) 8:08.30, 3.
Pole vault: Piotr Lisek (Pol) 5.82M, 1; Jan Kudlicka (Cze) 5.72, 2; Kevin Menaldo (Fra) 5.72, 3.
Javelin throw: Thomas Roehler (Ger) 89.17M, 1; Jakub Vadlejch (Cze) 85.43M, 2; Johannes Vetter (Ger) 85.14, 3.
4 x 100M relay: China (38.19), 1; U S (38.30), 2; U S (38.41), 3.
Women: 200M: Marie Josee Ta Lou (Cote D'Ivoire) 22.25, 1. Kyra Jefferson (U S) 22.42, 2; Dina Asher-Smith (GRB) 22.89, 3.
800M: Caster Semenya (SA) 1:55.27, 1; Francine Niyonsaba (Bur) 1:55.47, 2; Ajee Wilson (U S) 1:55.61, 3.
3000M: Hellen Onsando Obiri (Ken) 8:23.14, 1; Beatrice Chepkoech (Ken) 8:28.66, 2; Laura Muir (GRB) 8:30.64, 3.
100M hurdles: Kendra Harrison (U S) 12.51, 1; Sharika Nelvis (U S) 12.52, 2; Danielle Williams (Jam) 12.58, 3.
400M hurdles: Kori Carter (U S) 53.36, 1; Shamier Little (U S) 54.02, 2; Janieve Russell (Jam) 54.38, 3.
High jump: Mariya Lasitskene (Rus) 2.05M, 1; Yuliya Levchenko (Ukr) 1.97, 2; Vashti Cunningham (U S) 1.97, 3.
Triple jump: Caterine Ibargueen (Col) 14.86, 1; Yulimar Rojas (Ven) 14.83, 2; Kimberly Williams (Jam) 14.54, 3.
4 x 100M relay: U S (42.340), 1; U S (43.07), 2; Italy (43.30), 3.