Last update on.From section Republic of Ireland
Portugal's defender Pepe was issued his second yellow card for catching Callum Robinson with an elbow.
As they draw their World Cup Group A qualifier in Dublin with sub-par Portugal, the Republic of Ireland continued its encouraging recent form.
Portugal's Cristiano Ronaldo was frustrated by the late sending off of Pepe for two offences.
Enda Stevens and Chiedozie Obbene missed chances, while Matt Doherty was disallowed at the end.
Portugal and Serbia are now tied at 17 points, with only one game remaining.
After looking on track for a historic win in Faro in September, but being beaten by Ronaldo's late double in the final, the Republic took revenge in front of a loud 50,737 crowd at the Aviva Stadium.
Pepe's 82nd minute dismissal, the Porto defender receiving a second yellow for catching Callum Robinson with his stray elbow, gave the hosts the chance to win a late victory.
They also had the ball in injury time but Doherty's celebrations were cut short when the referee whistled after Will Keane, an Irish debutant, was adjudged to having fouled Rui Patricio.
Portugal boss Fernando Santos was likely focused on Sunday's crucial game against Serbia. Liverpool's Diogo Jota and Ruben Dias, both from Manchester City, were among the players left on the bench.
While Republic boss Stephen Kenny will be encouraged by a clean sheet against Portugal, the 2016 European champions must score a point against the Serbs at home to qualify for the next year's finals.
Battle between the two CR7s
Both sides' danger men entered the game on the backs of hat-tricks. Ronaldo had scored his 10th hat trick for Portugal against Luxembourg, Robinson - the Republic’s own CR7 - in an attempt to improve on his friendly win over Qatar.
Ronaldo had a tough first half. However, he was stopped twice by Seamus Coleman, a returning Republic captain, who displayed impressive recovery speed to challenge the 36-year old before charging down the Manchester United forward's shot after Goncalo Guiedes' pass.
Portugal had also tentative appeals to have a penalty thrown out when Ronaldo was challenged in the air by Doherty. This led to a quick Republic counter, but Robinson was unable enough to trouble Patricio adequately after cutting inside from his left flank.
Robinson, who scored five goals in the Republic's previous two outings, was the most dangerous player for the home team during the first 45 minutes. Ogbene was also unable to direct Ogbene's near-post header onto target, after being found by West Brom's attacker.
Ronaldo had the best chance midway through the second period. He was picked out from a pinpoint Andre Silva cross to the right. But, after sneaking in between Coleman and Jeff Hendrick, the former Real Madrid man snuck into Gavin Bazunu's box, he glanced at his head inches wide.
With a second-half header, Cristiano Ronaldo was closest to beating Republic keeper Gavin Bazunu
Bazunu was again helpless on 79, when Ronaldo shot a right-footed shot out of the area. The young Republic keeper was relieved to see it just miss his left-hand post moments after Stevens' shot at the other end had been lost by Ogbene.
Portugal was nervous at times at the back, most notably when Matheus nunes got into trouble in his box and fell. Josh Cullen couldn't get his shot into Patricio.
Patricio, Portugal's rescuer, raced 30 yards from the line to deny Ogbene. Ogbene looked favourite to hit a ball over the top to test the Roma stopper in an one-on-one.
This is another positive result for Kenny. His side has responded to the late heartache at Ronaldo's hands by going on a five-game streak unbeaten.
It's also the third consecutive clean sheet for the Irish. Kenny will be happy with how his three centre-halves, in particular Coleman, thwarted Ronaldo as well as his United team-mate Bruno Fernandes. Fernandes was only a peripheral figure until he was removed with 15 minutes remaining.
After a disappointing start to the campaign Kenny has regained some pride and is looking to take revenge on Luxembourg in the final qualifying series. The 50-year old looks to extend his contract before next summer.
What's next?
The Republic will conclude their campaign Sunday with a trip to Luxembourg. They stunned the Irish in March with a 1-0 victory in Dublin. Meanwhile, Portugal hosts Serbia. Portugal warmed up with a comfortable 4-0 win over Qatar.