1 Gavin Bazunu (Portsmouth)
Quickly made up for giving the ball to Fernandes by keeping Ronaldo's resulting penalty at bay with a fine save. Was assured throughout and could do nothing about the two late goals. Rating: 9
20 Dara O’Shea (West Bromwich Albion)
Engaged Ronaldo in some mind games before the penalty miss but was forced off with a nasty-looking ankle injury as he brought down Jota on the half-hour mark. Rating: 5
4 Shane Duffy (Brighton & Hove Albion)
Was at the heart of a heroic defensive effort which fell short at the death. Marshalled the back three and was equal to everything until you-know-who popped up to equalise. Rating: 8
5 John Egan (Sheffield United)
Ireland's player of the year delivered a performance fit for the title, putting them in touch of a priceless win with an excellent first-half header. Rating: 8
2 Séamus Coleman (Everton)
The Irish skipper exuded confidence on the ball and was a genuine attacking threat. Was forced deeper as the second-half progressed and found himself dwarfed by Ronaldo for the winner. Rating: 7
13 Jeff Hendrick (Newcastle United)
Was almost reprieved by VAR for giving away the penalty, replays showing he got something on the ball as he slid in on Fernandes. Ireland's midfield was disciplined throughout. Rating: 6
6 Josh Cullen (Anderlecht)
After a slow start he showed he will be of huge value going forward - tenacious in the tackle, he showed some excellent touches and ran himself into the ground. Rating: 8
18 Jamie McGrath (St Mirren)
Another player who blossomed as the match went on, his fine delivery from the left teed up Egan for Ireland's goal and he worked tirelessly off the ball on his full debut. Rating: 7
7 Matt Doherty (Tottenham Hotspur)
Ireland's early outball was down the left and he started brightly before being driven back by Cancelo as the game wore on, with Portugal's two goals coming from the right flank. Rating: 6
21 Aaron Connolly (Brighton & Hove Albion)
Offered Ireland everything apart from a goal. Ran the channels excellently in his bullish fashion and had Pepe back-pedalling repeatedly. Had a couple of chances to shoot but delayed. Rating: 8
9 Adam Idah (Norwich City)
It took Idah a while to get involved but he was ultimately excellent. His hold-up play was invaluable to Ireland, he has genuine pace and a proper first touch. Will prove a huge asset. Rating: 9
Bench
19-year-old Andrew Omobamidele was thrown in at the deep end and thrived, seamlessly becoming part of a heroic defensive effort. James McClean almost gave Ireland a shock second at 1-1. Rating: 8
Manager
What can you do? Kenny looked disconsolate afterwards but ultimately it took arguably the best player of all time to snatch away a famous win. Rating: 8