Ruben Neves rescued Portugal with a last-minute World Cup qualifying winner against the Republic of Ireland, after Cristiano Ronaldo's penalty was saved by Caoimhin Kelleher.

In a repeat what they did in 2021, the Portuguese team clinched victory in the nick of time, with Neves scoring in the first minute of stoppage time to secure a 1-0 win. This came four years after Ronaldo's double strike at the death defeated a resilient Ireland side.

Heimir Hallgrimsson's squad looked poised to leave Lisbon's Jose Alvalade Stadium with a well-earned point, but ultimately left empty-handed. Despite this, they managed to restore some pride with a spirited performance that helped erase memories of last month's humiliating loss to Armenia.

However, the defeat leaves them in a precarious position, having only secured a single point from their first three Group F matches.

They now face a must-win game against Armenia in Dublin on Tuesday evening. However, they will be without key midfielder Josh Cullen due to suspension, making their quest for a play-off place even more challenging.

Fans react

Irish fans didn't take too kindly to the decision to award Portugal a second-half penalty.

Report

Paul O'Hehir's on-the-whistle report from Lisbon can be read here.

Player ratings

Here's our take on tonight's individual performances.

And that's that

It's full-time and Portugal win at home to Ireland in injury-time again. Ruben Neves in the 91st minute. So deflating.

Groan

That's a real sickener. How cruel that goal is after such a strong a defensive performance.

End-to-end

Molumby had a shot that's blocked, and Portugal quickly break through Leao, who fires wide.

Cruel

Trincao crosses from the left, Ruben Neves is unmarked and he beats Caoimhin Kelleher to the punch to head home. That's just horrible.

What?!?!?!

Seven minutes?????? Come on!

All eyes will be on the fourth official

We're seconds away from finding out how much injury-time there will be...

The clock is running down

We are into Ronaldo time. Less than two minutes plus stoppage time to go and it would be worth remembering how Ronaldo broke Irish hearts four years ago, by scoring twice at this late stage. Fingers crossed history doesn't repeat itself.

Fernandes departs

Bruno Fernandes's game is done, as he is hauled off and replaced by Goncalo Ramos, who quickly gets into the game and sends a header wide of the target.

Off goes Coleman

Wow, what a display by Coleman, lasting 86 minutes in such an intense environment. Off he goes, as John Egan replaces the Everton legend.

The big question:

Will Tony O'Donoghue risk another Ronaldo walkout by asking him about that penalty miss??

More Irish changes

Heimir Hallgrímsson looks to freshen things up a little more, with two changes. Will Smallbone and Troy Parrott replace Chiedozie Ogbene and Evan Ferguson. Both men have put in an outstanding shift.

Ronald-NO

Cristiano Ronaldo just can't score penalties against Ireland!

Caoimhin Kelleher, you f**king beauty

Caoimhin Kelleher goes to his right, Ronaldo goes down the middle, and Kelleher sticks up his left boot to volley the ball clear!

Ronaldo takes...

... and IT'S SAVED!!!!

Penalty given

VAR doesn't reverse the decision. Penalty given.

NOOOOOOO

Harsh, harsh harsh! Dara O'Shea is penalised for handball, as he throws himself in front of a Trincao shot. It goes to VAR.

Ronaldo misses

Semedo's cross reaches Ronaldo eight yards from goal, but the legendary forward can't add to his 141 international goals. His shot flashes well wide. Caoimhin Kelleher's lack of urgency in taking the goal-kick earns the goalkeeper a yellow card.

Chance

Great work by Chiedozie Ogbene on the right, and an excellent cross that almost reaches... *checks notes*... Josh Cullen deep in the Portuguese box.

Molumby excellent again

As he did in the first-half with Ronaldo, Jayson Molumby wins possession in front of the Irish area and wins a free-kick. This time it's Bruno Fernandes with the foul, as Molumby nutmegs him, and the Manchester United man goes into the referee's notebook.

Irish change

Mikey Johnston is coming on to try and add some freshness to the Irish attack. Festy Ebosele goes off and he can be proud of his performance tonight. The Wexfordman has been a strong attacking outlet.

Substitutions

That's a serious vote of confidence for Ireland's defensive performance tonight, as Portugal boss Roberto Martinez makes a triple-substitution.

On come Francisco Trincao, Nelsen Semedo and Rafael Leao, and off go Diogo Dalot, Vitinha and Pedro Neto.

Kelleher to the rescue, part 2

Having dived to his left to deny Neves, Kelleher goes full-stretch to his right to keep out a Vitinha drive.

Kelleher to the rescue

Caoimhin Kelleher must have glue on his gloves, as he dives full-stretch to stop Ruben Neves's strike, and manages to keep the ball close enough to him that he can grab the rebound before a Portuguese attacker can pounce.

More changes coming

Portugal look to be preparing at least two changes, as they bid to turn this one in their favour.

Wide again

Another wayward Portugal effort from distance, this time by Vitinha. The more this happens, the more impatient and frustrated they will grow.

Hopefully!

Well done O'Shea

Dara O'Shea does really well to clear as Portugal attack down the right through Neto, who gets the better of Seamus Coleman to deliver a dangerous ball into the area.

Ronaldo again

Ronaldo does really well to take down a Fernandes pass as he is surrounded by white jerseys, and he sends his shot inches wide of the right-hand post.