Northern Ireland 2 Portugal 4
Ronaldo hit a second-half hat-trick to spare Portugal's blushes against Northern Ireland on an ill-tempered night that saw three red cards at Windsor Park.
The hosts looked to be on course for a stunning upset when Jamie Ward’s scrambled effort put them 2-1 in front and a man to the good after Helder Postiga’s dismissal.
But makeshift left-back Chris Brunt saw red on the hour and Ronaldo took control with a pair of powerful headers and a late free-kick, before Kyle Lafferty's dismissal completed Northern Ireland's misery.
Defenders Bruno Alves and Gareth McAuley had earlier traded first-half efforts to send the sides in 1-1 at half-time.
Ronaldo overtook Eusebio as his country’s second-highest goalscorer on the night and now has 43 in total for Portugal.
The first attempt on goal took 16 minutes, Alves heading Joao Moutinho’s free-kick just wide. The same pairing combined to better effect five minutes later, Moutinho’s corner cleared to the edge of the area and Alves sending a soft cushioned volley through the crowd of bodies and into the bottom corner.
Northern Ireland's pressure paid dividends in the 36th minute, with McAuley heading his side level from a a Shane Ferguson corner.
Just before the break Postiga aimed an apparent headbutt in the direction of McAuley and was shown a straight red card.
It was no surprise when Northern Ireland scored their second from another corner. Ferguson whipping the ball into the danger area and finding Jonny Evans. His header was on target but Ward, effectively man-marking the goalkeeper, managed to scramble home from point-blank range.
Brunt’s dismissal made it an even playing field and the equaliser arrived from Moutinho’s 68th minute corner. Ronaldo powered his header past Carroll to go level with Eusebio on 41 goals. Then he struck again on 77 minutes when Coentrao’s hanging cross picked him out at the far post.
Lafferty was next for an early bath, a senseless lunge at Pereira his sin and Ronaldo rifled home an 83rd-minute free-kick to secure the match ball.
NORTHERN IRELAND: Carroll, Hodson, McAuley, Jonny Evans, Ferguson, McGinn, Davis, Brunt, Norwood, Ward, Paterson. .
PORTUGAL: Rui Patricio, Joao Pereira, Bruno Alves, Pepe, Fabio Coentrao, Veloso, Meireles, Joao Moutinho, Vieirinha, Postiga, Ronaldo.
Referee: Danny Makkelie (Nederland)