Usain Bolt will meet Justin Gatlin in the final of the World Athletics Championships men's 100m after narrowly edging through the semis in Beijing.
The Jamaican appeared to stumble from the blocks and was in danger of crashing out of the competition.
However, Bolt managed to recover and dip on the line to beat Andre De Grasse of Canada, while US teenager Trayvon Bromell missed out on automatic qualification with a time of 9.99s.
Gatlin then produced a dominant display in the second semi, appearing to ease down, but still clocking 9.77s ahead of fellow countryman Mike Rodgers. CJ Ujah finished fifth in 10.05.
Richard Kilty, who has struggled with injury in the build-up to Beijing, was run out of contention in the last semi-final as Tyson Gay and Asafa Powell took the final two automatic places in Sunday's final.