It’s history for Morocco though – a first Afcon final since 2004, when their manager Walid Regragui was playing. Achraf Hakimi continues to lead by example, his penalty the coolest of the lot. Brahim Díaz has been the star of the tournament but looked shattered tonight. Yassine Bounou is world class when it comes to penalty shootouts.
Only Senegal stand in their way of a first continental crown since 1976 back in Rabat on Sunday.
Updated
Nigeria’s wait for a first Afcon title since 2013 goes on. They were flat throughout this semi-final and failed to make the most of their considerable attacking talent. Calvin Bassey was superb at the back. Questions will be asked over the decision to bring off Victor Osimhen with penalties looming.
The final: Senegal v Morocco, Sunday 8pm (GMT)
Third place: Egypt v Nigeria, Saturday 4pm
Bounou is the hero again after a shootout for Morocco. He’s thrown in the air by his teammates.
The Stade Prince Moulay Abdellah erupts! Nwabali went the right way but En-Nesyri’s spot-kick had enough pace on it to get past him.
MOROCCO WIN ON PENALTIES!
En-Nesyri sends Morocco to their first Afcon final in 22 years!
Updated
Onyemaechi for Nigeria … saved by Bounou! The keeper went early and gets a hand to it!
3-2 to Morocco after four each. Match point.
Hakimi for Morocco … scores! Strokes it in cooly. 3-2 Morocco.
Updated
Dele-Bashiru for Nigeria … scores! Sends Bounou the wrong way. 2-2 after three each.
Ben Seghir for Morocco … scores! Out of Nwabali’s reach. 2-1 Morocco.
Chukwueze for Nigeria … saved by Bounou! Poor penalty, easily saved low. 1-1 after two each.
Updated
Igamane for Morocco … saved by Nwabali! He gets a fingertip on it low down to his right. 1-1.
Updated
Onuachu for Nigeria … scores! Bottom left, keeper goes the other way. 1-1 after one each.
El Aynaoui for Morocco … scores! Sends Nwabali the wrong way. 1-0.
Updated
PENALTY SHOOTOUT
Both teams have another huddle before they line up on the halfway line. Virtually the whole ground is Morocco fans so it doesn’t matter which end they go. Morocco to take first.
Full time after ET: Nigeria 0-0 Morocco
That’s it. Penalties will decide who will play Senegal in the Africa Cup of Nations final on Sunday. Morocco, with Bounou in goal, will probably be favourites but the pressure is all on them as hosts.
Updated
120+1 min: Nigeria make another change. Fulham’s Chukwueze replaces Brentford’s Onyeka.
Updated
120 min: Nigeria clear the ball to El Aynaoui and his speculative half-volley is straight down Nwabali’s throat. One minute added. Penalties loom.
119 min: Morocco recycle the ball and will make one last push for a winner.
118 min: A very strange move by Nigeria as Osimhen, surely their best penalty taker, is withdrawn for Onuachu. Morocco replace Saibiri with Ben Seghir.
117 min: Sloppy play from Morocco in midfield allows Nigeria to break, with Lookman finding Simon, whose cross into the box is seen off by Aguerd.
115 min: Hakimi’s free-kick is headed away. Bassey then butts an Igamane cross away too.
114 min: We’re approaching the majority of players now who are on their haunches when there’s a pause in play. Morocco have a free-kick about 35 yards from goal. Hakimi may well swing it into the box.
112 min: Another couple of fouls. Both teams look exhausted and are being very risk-averse. Understandably, perhaps.
110 min: Onyemaechi takes issue with Akhomach after a challenge by the touchline. It’s scrappy.
108 min: Brahim does now leave the field, replaced by Ilias Akhomach. One of Morocco’s potential penalty takers departs. He did look dead on his feet, mind.
107 min: Morocco get forward again and players go down at various points on the edge of Nigeria area. A few whistles in the crowd are making it very difficult to tell when there’s actually been a foul.
Second half of ET begins: A couple of team huddles later, we have swapped sides and we go again. Hosts Morocco still in search of their first Afcon final for 22 years, their first title for 50. It’s going to be tense.
Half-time in ET: After one minute of added time played and a couple of speculative Morocco crosses, the whistle goes.
105 min: Nigeria threaten as Simon crosses into the box. Osimhen tries to take it down and then Lookman tries to find some space to shoot but can’t. The whistle goes for … something. I’m not sure what. Handball perhaps. Anyway, Osimhen is moving a bit gingerly.
103 min: Ezzalzouli is the man replaced by En-Nesyri. Bit of a U-turn from the Morocco manager after a jumpy reaction to Brahim potentially coming off from the crowd.
101 min: Brahim, very quiet since half-time, is being replaced … or is he? Regragui changes his mind. En-Nesyri is waiting to come on. Play restarts.
Updated
100 min: Ezzalzouli can’t tame a bouncing ball in the Nigeria box and it falls to Igamane, who can, but whose shot is gathered by Nwabali.
98 min: Adams is replaced by Fisayo Dele-Bashiru, formerly of Sheffield Wednesday, for Nigeria.
97 min: Mazraoui toes the ball away from Adams as Nigeria force their first corner of the game. Lookman’s delivery is rubbish and headed away short of the near post.
95 min: Igamane nutmegs Onyeka on the edge of the box before curling a shot well wide of the far post. Not bad.
93 min: Off the post! Hakimi drifts his corner to the back post and Aguerd is there to head/shoulder it on to the outside of the post. It was a very tight angle – he was almost off the pitch.
Updated
92 min: Morocco win a corner after Osayi-Samuel toes it away from Ezzalzouli. Hakimi will take …
Extra time starts
Here we go again. Another half an hour to find out who will play Senegal on Sunday.
FULL TIME: Nigeria 0-0 Morocco
Extra time is needed. Judging by how late both managers left it before using their bench, they anticipated this and have planned for it. Let the tension build further.
90+2 min: Mazraoui tries to break free but Osimhen wins the ball back. Moses has been a lively introduction down the left but his ball into the box is near nobody and Bounou collects.
90+1 min: Bassey goes long, it’s flicked on by Osimhen but Lookman can’t get on the end of it. Morocco win it back.
90 min: Ezzalzouli makes Osayi-Samuel look very foolish out wide but his cross finds no one in a red shirt. Three minutes added on. Extra time beckons.
88 min: Bassey goes long to try to find Moses down the Nigeria left. Hakimi tries to see the ball out but Moses fouls him as the defender prods it out for a corner. Again, it’s soft.
86 min: Adams makes gains down Nigeria’s right, forcing his way through a couple of Morocco defenders to win a throw.
84 min: Morocco make changes too. Oussama Targhalline replaces El Khannous and Hamza Igamane, formerly of Rangers, is on for El Kaabi.
83 min: Ezzalzouli tries his luck from the edge of the box and his bouncing shot across goal is pushed away by Nwabali. Morocco are on top. Nigeria respond by replacing Onyedika with Moses Simon. Quite attacking.
82 min: El Khannouss lofts the free-kick and it’s easily gathered by Nwabali. Nigeria launch a counter but Morocco get enough bodies back.
81 min: Hakimi’s shot hit Bassey’s thigh and then his hand, which is by his side. Not a penalty. Morocco have another wide free-kick on the edge of the box.
80 min: Cries for handball and a penalty as Hakimi’s shot from distance is blocked by Bassey. The referee is unmoved. Morocco are unhappy.
79 min: Hakimi rolls the free-kick to Ezzalzouli, whose lifted cross is headed well away by Bassey. Morocco come again but Osayi-Samuel forces Ezzalzouli back on the left flank.
78 min: Hakimi jinks inside Onyemaechi, who slips, and Onyedika has to take one for the team by pulling down the full-back before he gets near the Nigeria box. He gets a yellow for his troubles.
76 min: Ezzalzouli skips past Osayi-Samuel and whips a ball towards the back post. The goalkeeper is stranded, Brahim is waiting but Onyedika nods it behind for a corner. Hakimi’s corner is headed wide by El Kaabi.
74 min: Morocco manager Walid Regragui looks impossibly nervous on the touchline. His team are starting to become wasteful on the break and you sense the momentum is shifting somewhat. It’s getting edgy.
72 min: El Kaabi and Bassey embrace in another wrestle on the edge of the area and Nigeria get the free-kick. Some one-on-one battle that has been. Still no changes from either team.
70 min: Adams pings a ball towards the back post, Osimhen tries to take it down on his chest but it runs wide. Nigeria recycle, building more pressure and drawing more whistles from the crowd, but the referee has stopped it. It’s not entirely clear why. No one is sure how to restart. It’s a throw-in to Morocco, apparently.
68 min: A flash of inspiration from Iwobi sees him try to feed a ball through to Osimhen in the area but Masina gets in the way. A pass over the Nigeria defence ends with Nwabali beating El Kaabi to the ball and getting clattered by a retreating Bassey in the process.
Updated
66 min: Nigeria are really flat. Their passing is laboured and Morocco are finding it easy to shuffle across to block them. There’s not a lot of movement off the ball either.
Ezzalzouli escapes a yellow after kicking the ball away following a foul.
64 min: Nwabali takes a chance in his six-yard box as El Kaabi closes him down. A panicked toe-punt out for a throw does little to dispel any nerves.
62 min: Nigeria are growing more frustrated. Bassey overhits a simple ball out to Onyemaechi on the left and it goes out of play. A hopeful ball into the Morocco box ends with a couple of defenders bumping into Osimhen and the ball goes harmlessly behind.
60 min: Ezzalzouli’s free-kick is underhit and Nwabali gathers at the near post.
59 min: Osayi-Samuel does really well up against Ezzalzouli, standing his ground in the area and forcing the winger back towards the touchline. The referee eventually takes issue with his physical approach and gives a soft free-kick that Morocco can swing in.
57 min: Hakimi and Brahim come again down Morocco’s right. The latter gets his cross all wrong on his weaker foot and Nwabali can gather from under his own crossbar. Bit of a lack of quality seeping in.
Updated
55 min: A Nigeria spell of pressure ends with Onyeka, off balance, crossing on to the roof of Bounou’s net.
53 min: Best chance of the match! Morocco break fast with Saibari, who lays the ball off to Ezzalzouli on his left and he tries to bend his shot into the far corner but Nwabali bats it away. Nigeria clear the resulting corner before Bassey makes a vital interception to stop Mazraoui finding El Kaabi in the box.
Updated
51 min: Onyemaechi lofts a cross into the Morocco box, the ball finds its way to Onyedika some 25 yards out and his thumps a volley into the floor and well wide.
49 min: Ezzalzouli tries to twist Ajayi’s blood out wide before El Aynaoui wins a foul. Someone has a whistle in the crowd which is … unhelpful.
47 min: El Aynaoui ends up grimacing in pain after his foot is trodden on by Lookman. It’s been a scrappy start to the second half.
RESTART
Daniel Laryea Nii of Ghana blows his whistle and Nigeria get the ball rolling again. They and Morocco are 45 minutes away from the Afcon final. Or maybe more.
Adrian writes in: “To Fulham supporter Richard Hirst, whether Nigeria wins or loses you will get your players back at the same time. If Nigeria loses, they still have to play the third-place match. Therefore you should want Nigeria to win the whole thing.”
Ah, the third-place playoff. I fear I’m in the minority when I say that I actually quite like them. A bit of light relief after some high-intensity games. Saturday 4pm (GMT) in this case.
Jonathan Wilson couldn’t be in two places at once today, so he was in Tangier to watch Senegal knock out Egypt in the other semi-final:
HALF-TIME: Nigeria 0-0 Morocco
Well, this was perhaps to be expected. A lack of clearcut chances but plenty of tension. Nigeria will know the longer it stays like this, the more jittery the Moroccan crowd will become. I fear we may need extra time.
Updated
45 min: The game is meandering towards half-time. One minute is added.
44 min: Everyone’s eardrums are given a rest after a spell of Nigeria possession comes to an end with a misplaced pass out of play.
42 min: Osayi-Samuel marauds diagonally across the Morocco half and feeds it to Onyemaechi on the left but Brahim tracks back to intercept, to huge ovation from the crowd. He does the dirty work too.
40 min: Nwabali saves! El Khannouss exchanges passes with Ezzalzouli and tests the Nigeria keeper with a strike to his near post. It’s easily repelled.
38 min: Morocco get another free-kick in the attacking third, Hakimi crosses in and Nwabali juggles before gathering and punting it towards Adams. The ball just keeps coming back.
37 min: Osayi-Samuel whacks his knee into Ezzalzouli’s thigh, unintentionally. Might be a dead leg. The magic spray is out and does the trick.
35 min: Hakimi whips the free-kick over the wall and ripples the roof of the net. Inches away.
34 min: That yellow card means Bassey will miss the final if Nigeria progress. It’s so soft and yet so costly. Osimhen comes to have a consolatory word. Morocco have a free-kick on the edge of the box.
33 min: Masina intervenes just in time as Osimhen and Lookman try to create something in the Morocco box. Bassey then goes into the book for bringing down Brahim with a trailing arm, supposedly.
Updated
31 min: Osayi-Samuel tries to find Adams down the line but the Nigeria striker fouls his man. Eric Chelle has to find answers.
29 min: Nervy moments for Nigeria! Hakimi whips a cross into the box which Brahim glances wide of the back post. The pressure is building a touch.
28 min: Hakimi does some cheerleading after winning a corner off Onyemaechi. Masina heads it down but El Kaabi can’t quite hook it goalwards and Nigeria clear.
27 min: Mazraoui gets up and under a clearance from his own corner flag, El Kaabi wins the physical battle this time to flick it on but Brahim can’t latch on to it. Adams then fails to hold the ball up in the Morocco area just as Nigeria were looking threatening.
25 min: Nwabali slices another clearance out of play and does the typical look-at-the-turf-accusingly routine. Nigeria have to keep the ball better than this. Ajayi cuddles El Kaabi this time after Morocco send it long.
23 min: Onyemaechi times his tackle right this time, just as Brahim was trying to slip the ball in behind for Hakimi down the right. Bassey and El Kaabi are involved in a right physical tussle and the Nigeria defender wins another free-kick off the striker.
21 min: Onyemaechi is pulled up for a kick at Hakimi’s ankles. The resulting free-kick out wide is well worked and El Aynaoui’s looping header drops harmlessly wide.
19 min: Nigeria try to break at speed with Osimhen and Lookman but the latter is surrounded by three Morocco players before he can pick out a teammate. The hosts say: ‘You’ll have to do better than that.’
17 min: El Khannouss tries to send a ball into the box but it’s blocked out for a corner. Osimhen heads away at the near post.
15 min: Bounou saves! Nice work from Iwobi creates an opening for Nigeria. He squares the ball across for Lookman who, some 20-25 yards out, hits a shot that bounces in front of the Morocco keeper, who parries it out of danger.
13 min: Morocco get on the ball just long enough to hear the Nigerian band in the stands before Nigeria win it back and the din returns. Nwabali scuffs a clearance out for a Morocco throw on halfway.
11 min: Nigeria are not getting the rub of the green with the referee. Iwobi wants a foul before a Morocco breakaway but doesn’t get it. Osimhen then wrestles with Masina inside the Nigeria half and a free-kick is given. Osimhen is not happy.
9 min: Just wide! Brahim drifts in on his left foot, inside the area, and floats a shot just wide of the far post. Oof. The noise builds further.
8 min: Brahim and Hakimi try to work something down the Morocco right but Bassey hoofs it clear. Brahim comes again …
6 min: Lookman gets on the ball on the edge of the box and tries to play Osayi-Samuel through but he collides with a couple of Morocco defenders and is penalised, for some reason. Onyedika then goes in on Hakimi. Feisty.
5 min: Nigeria try to take the sting out of the game after a jumpy start. That only serves to increase the volume of whistling coming from the home crowd.
3 min: Ajayi is a bag of nerves, giving the ball straight to Ezzalzouli in Nigeria’s defensive third. The defender manages to crunch in a tackle just as the winger was pulling the trigger.
2 min: Iwobi looks for Osimhen right away, punting the ball over the Morocco backline but Bono comes to gather. Piercing whistles for whenever Nigeria are on the ball.
KICK-OFF
Morocco in their red and green, Nigeria in all white. Captains Hakimi and Osimhen exchange pennants and handshakes. It’s go time. The noise is something else.
Nigeria’s national anthem is well observed. Morocco’s is raucous – the stakes are huge. Kick-off is upon us.
The fans are out in force in Rabat. They await the teams.
Route to the semis
Nigeria
Group stage (1st): won 2-1 v Tanzania, won 3-2 v Tunisia, won 3-1 v Uganda
Last 16: won 4-0 v Mozambique
Quarter-final: won 2-0 v Algeria
Top scorer: Victor Osimhen (4 goals)
Morocco
Group stage (1st): won 2-0 v Comoros, drew 1-1 v Mali, won 3-0 v Zambia
Last 16: won 1-0 v Tanzania
Quarter-final: won 2-0 v Cameroon
Top scorer: Brahim Díaz (5 goals)
Morocco’s players head out to warm up in Rabat, high-fiving an Atlas lion (a cuddly mascot, not a real one) on their way out of the tunnel. The country’s hosting abilities have been under scrutiny throughout this Afcon with a view to co-hosting the World Cup with Spain and Portugal in 2030. Jonathan Wilson has been there:
The high-speed Al-Boraq rail service from Rabat to Tangier is exceptional and should be extended through Casablanca to Marrakech by 2030. The conventional trains are very good, though they would come under strain at a World Cup, and don’t yet reach as far south as Agadir. With internal flights limited, that is an obvious potential problem. Hotels have easily been able to cope with the influx of visitors for the Cup of Nations without absurd price increases, and Morocco has a developed tourist infrastructure. That may yet not be enough for the far greater stresses of a World Cup, but the foundations are there.
“As a Fulham supporter I’m torn,” writes Richard Hirst. “Should I want Nigeria to lose so that we get Bassey, Iwobi and Chukwueze back quickly? Or should I want Nigeria to win the whole thing, so that when we do get them back they are on a high and tear our opponents to shreds? Answers to Marco Silva please.”
Yep, just the three Fulham players in the Nigeria squad tonight. Calvin Bassey and Alex Iwobi start, with Samuel Chukwueze waiting in the wings.
Semi-Final day for our Super Eagles! 🦅#Naija4TheWin #AFCON pic.twitter.com/he0SGRKDNG
— Fulham Football Club (@FulhamFC) January 14, 2026
Captain Wilfred Ndidi misses out for Nigeria with a combination of suspension and injury. He picked up a second yellow card of the tournament, earning him a one-match ban, and a hamstring strain in the quarter-final. Club Brugge’s Raphael Onyedika takes his place in the XI tonight in their only change.
Morocco are unchanged from their quarter-final.
Updated
Team news
Starting lineups from the Stade Prince Moulay Abdellah:
Nigeria (4-3-1-2): Nwabili; Osayi-Samuel, Ajayi, Bassey, Onyemaechi; Onyeka, Onyedika, Iwobi; Lookman; Osimhen, Adams.
Subs: Obasogie, Uzoho, Awaziem, Ogbu, Sanusi, Akinsanmiro, Dele-Bashiru, Usman, Nnadi, Ejuke, Fago, Simon, Onuachu, Chukwueze.
Morocco (4-3-3): Bounou; Hakimi, Aguerd, Masina, Mazraoui; El Khannouss, El Aynaoui, Saibari; Brahim, El Kaabi, Ezzalzouli.
Subs: Al Harrar, Munir, Boudlal, Salah-Eddine, El Yamiq, Chibi, Belammari, Ben Seghir, Akhomach, Targhalline, Amrabat, Talbi, Igamane, Rahimi, En-Nesyri.
Senegal await the winners of this one in final after edging out Egypt in the first semi-final. The full-time whistle went a few minutes ago, with Sadio Mané’s late-ish winner was the difference.
Yara El-Shaboury is sweeping up the reaction on her blog:
Preamble
It’s been 22 years since Morocco last appeared in the Africa Cup of Nations final and 50 years since they won the thing. Tonight the 2026 hosts have the chance to stay right to the very end of their own party when they take on the runners-up of two years ago, Nigeria, in Rabat in the second semi-final.
Walid Regragui’s side topped their group and have since knocked out Tanzania and Cameroon. Real Madrid’s Brahim Díaz, whose club coach has changed while he’s been away, has scored in every game at the tournament so far, including the first of Morocco’s two against Cameroon in last Friday’s quarter-final. They remain favourites for the title.
Standing in their way of Sunday’s final are Nigeria who, unlike Morocco, have won every game at this tournament. Victor Osimhen is their talisman and he gave them the lead against Algeria in their 2-0 quarter-final victory to get this far. The Super Eagles took the lead in the 2023 Afcon final (played in 2024) but were beaten by the hosts on that occasion, Côte d’Ivoire.
I’ll be providing updates for as long as this one takes, should we need extra time and penalties, so feel free to get in touch via email with your thoughts on the game. Kick-off is 8pm (GMT). Team news is coming up.
Updated