Senegal are through to their third Africa Cup of Nations final with Sadio Mane on target to help them overcome Burkino Faso.
In an eventful game, VAR chalked off two Senegal penalties, with Burkina Faso goalkeeper Herve Koffi injured during the events of the first.
Abdou Diallo and Idrissa Gueye put Senegal in charge before Blati Toure narrowed the deficit late on.
But Mane chipped in to settle victory for the tournament favourites.
It was Mane’s 29th goal for his country, taking him level with Henri Camara at the top of their all-time scorer list.
Senegal will face Egypt or hosts Cameroon in Sunday’s final (19:00 GMT).
Burkina Faso will take part in the third/fourth-place play-off, which has been brought forward a day to Saturday (also kicking off at 19:00).
Superior Senegal break Burkina Faso’s stubborn resolve
Just four minutes into the game at the Ahmadou Ahidjo Stadium in Cameroon’s capital Yaounde, there was a serious clash of heads following a fully-committed 50-50 challenge between Nampalys Mendy and Cyrille Bayala.
It set the tone for what would be a full-blooded and fiercely-contested last-four clash between two sides who have both reached the final of this competition in the past but never won it.
Senegal are the highest ranked side in Africa – 20th in Fifa’s global list – and their extra class ultimately told.
They were teased with the opportunity to open the scoring twice before the break, with Koffi’s aerial clash with Cheikhou Kouyate and Edmond Tapsoba’s elbow-block on Idrissa Gueye both adjudged to be penalties on the field.
But both were correctly overturned by referee Bamlak Tessema Weyesa after he had been called to view them on the monitor by the video officials.
There was still a cost to Burkina Faso, with Koffi forced off hurt in the 36th minute after awkwardly landing on Crystal Palace midfielder Kouyate as he tried to punch clear.
That they took the contest so deep is a tribute to their fortitude and a defiant performance that gave the favourites more than one scare, mainly via the direct running of Aston Villa’s Bertrand Traore.
After Idrissa Gueye had slotted in to make it 2-0 in the 76th minute – six minutes after Diallo’s finish following a corner – Kamou Malo’s side could have wilted.
But Toure gave them brief hope with his 82nd-minute effort, before Senegal talisman Mane fittingly had his say on the occasion with a driving run and chipped finish three minutes from time.
It leaves the tantalising prospect of a final showdown with his Liverpool team-mate Mohamed Salah if Egypt reach the final – a game in which Mane will be looking to break his country’s goals record in fine style.
‘Mane has no ego at all’
Former Nigeria striker Efan Ekoku, speaking on BBC Three:
Sadio Mane plays like a guy who is 18, 19 all the time. He has a real desire.
He has real unselfishness and when he plays for his country there is no ego at all.
He is one of my favourite all-time players in world football, I can’t think of anyone else I would want in my team.
16KoffiSubstituted forOuédraogoat 36′minutes
24GuiraBooked at 28minsSubstituted forOuattaraat 81′minutes
19BandéSubstituted forTapsobaat 81′minutes
21BayalaSubstituted forSanogoat 60′minutes
20SarrBooked at 50mins
8KouyatéSubstituted forGueyeat 65′minutes
6MendySubstituted forCisséat 90+2′minutesBooked at 90mins
15DiengSubstituted forSarrat 78′minutes
19DiédhiouSubstituted forSarrat 65′minutes
Bamlak Tessema Weyesa
Match ends, Burkina Faso 1, Senegal 3.
Second Half ends, Burkina Faso 1, Senegal 3.
Pape Abou Cissé (Senegal) is shown the yellow card for a bad foul.
Foul by Pape Abou Cissé (Senegal).
Bertrand Traoré (Burkina Faso) wins a free kick in the defensive half.
Substitution, Senegal. Pape Abou Cissé replaces Nampalys Mendy.
Offside, Burkina Faso. Blati Touré tries a through ball, but Djibril Ouattara is caught offside.
Corner, Burkina Faso. Conceded by Pape Sarr.
Goal! Burkina Faso 1, Senegal 3. Sadio Mané (Senegal) left footed shot from the left side of the box to the high centre of the goal. Assisted by Ismaïla Sarr following a fast break.
Attempt missed. Pape Gueye (Senegal) left footed shot from outside the box is close, but misses to the right. Assisted by Pape Sarr.
Goal! Burkina Faso 1, Senegal 2. Blati Touré (Burkina Faso) right footed shot from the centre of the box to the bottom right corner. Assisted by Issa Kaboré with a cross.
Substitution, Burkina Faso. Djibril Ouattara replaces Adama Guira.