DR Congo came from behind to beat Guinea 3-1 and book a semi-final spot at the 2023 Africa Cup of Nations.
Mohamed Bayo put Guinea ahead with a 20th-minute penalty after the forward was fouled by Chancel Mbemba, who then fired in from a narrow angle at the other end to equalise seven minutes later.
DR Congo had a penalty of their own in the second half when Julian Jeanvier clipped the legs of Silas and Brentford forward Yoane Wissa converted to give the Leopards the lead with 25 minutes left.
The West Africans had little in response after going behind and the result was sealed when Arthur Masuaku's free-kick from wide on the left caught out Guinea goalkeeper Ibrahim Kone at his near post.
DR Congo had drawn all four of their previous games in Ivory Coast, beating Egypt on penalties in the last 16, and now prepare for a first semi-final outing since the Central Africans finished third in 2015.
Sebastien Desabre's side will face the winners of Saturday's quarter-final between Mali and hosts Ivory Coast (17:00 GMT) in the last four on Wednesday.
A tale of two penalties
Guinea had appeals for a penalty turned down in the opening minute when the ball flicked behind off Mbemba's hand but, after Wissa had poked wide for DR Congo, the Syli National were awarded a soft spot-kick.
Bayo was under pressure from Mbemba when he hit the turf while attempting to get on the end of Ibrahim Diakite's cross, and referee Mustapha Ghorbal controversially decided Mbemba's shoulder in the back was worthy of a foul.
The Video Assistant Referee did not get involved despite Congolese protests and, after a delay, Bayo slotted to the right of centre to notch his third goal at the finals.
However, Mbemba made amends when Masuaku's corner fell to the former Newcastle centre-back at the far post and he rifled a left-footed shot into the roof of the net.
Facinet Conte spurned a glorious chance to put Guinea back ahead when he could not get a decent connection on the ball after being played through, and a minute later DR Congo had a penalty when Jeanvier carelessly halted Silas' bustling run forward.
Wissa stuttered in his run-up but found the bottom left-hand corner and Guinea, making their first appearance in the last eight since 2015, struggled to find a response, despite bringing Stuttgart striker Serhou Guirassy off the bench.
With eight minutes remaining Masuaku put the result beyond doubt when the former West Ham full-back's left-footed knuckleball shot dipped and swerved past Kone, who had expected a cross and could not keep out the ball despite his despairing dive.
Guirassy did have an injury-time header deflected wide, while Silas could have added a fourth goal but fired over from inside the area.