Morocco became the first ever African side to reach the semi-finals of a World Cup as they dumped Portugal out of the competition at Al Thumama Stadium in Qatar.

Youssef En-Nesyri bagged the only goal of the game as he out-jumped the flailing Diogo Costa to head into the net.

Fernando Santos' men chased the game but struggled to create anything clear-cut against the stubborn Moroccan defence.

Walid Regragui's side defended valiantly as they held out to advance into the last four where they will face either England or France.

  • Morocco

Yassine Bounou - 7

Made a good save to prevent Joao Felix's header from going in after just five minutes.

Claimed well from a couple of decent Portugal deliveries.

Flapped at a cross with 15 minutes to go but nothing came of it.

Yahia Attiyat Allah - 8

Assisted Youssef En-Nesyri's opener and defended exceptionally well throughout.

There was a moment in the second half when Diogo Dalot looked to break into the penalty area, but the left-back was unmoved as he used his body to shield the ball and the Portugal man out of play.

Romain Saiss - 7

Struggled with injury at the start of the second period but fought valiantly until his substitution.

If this is to be the end of his tournament, he will undoubtedly be proud of his efforts.

Jawad El Yamiq - 7

Had the huge task of replacing Nayef Aguerd in the starting line-up but played with composure and tenacity throughout.

A stellar defensive display from him.

Achraf Hakimi - 8

As always he roved down the right-hand side with real intent.

Although he only has 48 caps to his name, his tournament has written himself into Moroccan footballing heritage.

Selim Amallah - 7

Fired well over when in space just before half-time.

Put in a good shift, especially out of possession.

Sofyan Amrabat - 7

A huge part of the organised Morocco side, the Fiorentina man marshalled the midfield well once again.

He deserves immense credit for their run so far.

Azzedine Ounahi - 8

Name-dropped by Luis Enrique after an impressive performance against Spain in the last round.

Showed similar quality on the ball in this match as he dictated play alongside Amrabat.

Sofiane Boufal - 7

A real mercurial talent on the left for Regragui's side, the former Southampton man was dangerous and posed a huge threat as Portugal pushed forwards in the latter stages.

Was substituted as Regragui looked to shut up shop.

Youssef En-Nesyri - 8

Turned a free-kick over the crossbar when left in acres of space in the first half, but more than made up for it with a brave jump over keeper Costa to score the opener.

A workman-like performance from En-Nesyri.

Embed from Getty Images

Hakim Ziyech - 7

A threat on the right as he so often is for his nation, Ziyech cut inside and lashed a shot just wide of the post on 18 minutes.

Did some important 'dirty work' for his side by winning fouls high up the field to alleviate some pressure on the back line.

Subs:

Achraf Dari - 5

Came on in place of captain Saiss and was booked shortly after entering the field. 

Walid Cheddira - 4

Sent off for two yellow cards inside the space of two minutes in added time.

The first for an elbow on Pepe, his second for a high challenge on Felix.

Made life very difficult for his side during the closing stages.

Badr Banoune - 6

Brought on and slotted into the new-look back five well.

Yayha Jabrane - 5

Replaced Ziyech with the idea of sitting as a second right-back.

Zakaria Aboukhal - 5

Tried to chip Costa as he went one-on-one in the final minutes of the game but the goalkeeper read it well and stood tall.

  • Portugal

Diogo Costa - 4

At fault for the opener as he came out to clear but got nowhere near the ball which left them chasing the game throughout the second half.

Poor decision to come for the ball.

Embed from Getty Images

Diogo Dalot - 6

Not his greatest showing in a defensive sense, but attacking-wise provided a decent threat down the right.

Pepe - 6

The captain was frustrated at his team's defensive performance in the first half and was often captured bellowing at fellow members of the back line.

Could have scored as he had a free header at the back post with a minute to play.

Likely to be his World Cup bow at the age of 39 following this defeat.

Ruben Dias - 5

Caught underneath the ball for the first goal and was clattered by goalkeeper Costa in the process. Poor performance.

Raphael Guerreiro - 5

Put in a couple of dangerous deliveries, but was culpable for the amount of space Ziyech had down that side of the pitch.

Substituted for Cancelo as part of Santos' double change at the start of the second half.

Otavio - 6

Crossed in for Ramos' header that went just wide.

Not quite at the races on the night as he was subbed off for Vitinha.

Ruben Neves - 6

Covered plenty of ground but to no avail, the Wolves man was brought off for Ronaldo as Santos looked to win the game early in the second period.

Bernardo Silva - 6

A few dangerous runs and crosses but to no avail for the Manchester City man.

Forced to play make from deeper areas which he would not have enjoyed.

Bruno Fernandes - 7

Crossed in a superb free-kick which Felix headed goalwards early on.

Hit the bar just before half-time with a tricky curling effort, was Portugal's only real hope of getting back into the game.

Goncalo Ramos - 6

Portugal's hero in the last 16, Ramos grew frustrated at the lack of service during the first half.

He had an opportunity to score midway through the second period but headed wide of the target despite having plenty of space in the six-yard box.

Set the standard with his performance in the last 16 but failed to get close to that in this game.

Joao Felix - 6

Was denied by Bounou as he executed a diving header towards the bottom corner.

Had another effort saved by the goalkeeper as he drove a shot towards the top corner on the half-turn.

Subs:

Cristiano Ronaldo - 5

Won his 196th cap by coming on as a substitute for Neves.

Once again dropped and his lack of impact after being brought on proved why.

Latched onto a ball late on but his drilled effort was saved by Bounou.

Joao Cancelo - 6

Should have started the match to deal with the threat of Ziyech instead of Guerreiro but was brought on early in the second half.

Certainly added more threat to the Portuguese attack.

Rafael Leao - 5

Subbed on with the hope of adding more flair to their forward line, but was not able to do so due to the Moroccan low block.

Vitinha - 5

Being booked was his only contribution.

Ricardo Horta - 5

Little time to make an impact as the game ebbed away.