The Republic of Ireland took full advantage of other results to move level on points with Russia and Slovakia at the top of UEFA EURO 2012 qualifying Group B.
First-half goals from Aiden McGeady and Robbie Keane had put the hosts firmly in control but an excellent 45th-minute strike from the Former Yugoslav Republic of Macedonia's Ivan Trickovski ensured an uncomfortable second half for Ireland, who rode their luck at times.
Giovanni Trapattoni's charges made a dream start within 90 seconds when McGeady picked up the ball 25 metres out, cut in from the right and fired a powerful shot inside Edin Nuredinovski's near post to score his first international goal. The home side doubled their lead shortly afterwards when Nuredinovski spilled a fiercely struck Darron Gibson free-kick into Robbie Keane's path and the Ireland captain made no mistake from close range.
Moments later, Shane Long almost extended their advantage, but the substitute, on for the injured Kevin Doyle, failed to test a vulnerable Nuredinovski after latching onto Keane's through ball. Ireland were seemingly cruising towards half-time, yet Trickovski had other ideas, beating the offside trap before turning Richard Dunne inside the area and slotting neatly under the onrushing Keiren Westwood.
The visitors, rejuvenated by their goal before the break, were almost level when Goran Popov went on a marauding run down the left and crossed for Goran Pandev, but the FC Internazionale Milano forward's first-time volley drifted off target. Against the run of play, Ireland then went close to restoring a two-goal lead, McGeady beating Vance Sikov and crossing for Damien Duff, whose half-volley went perilously close.
FYROM's second-half dominance became more evident as the game went on and Trickovski missed a glorious chance to earn his side a point, racing onto a long ball from Muhamed Demiri only to be denied by a smart save from Westwood. Keane perhaps ought to have made the win safe for Ireland at the end, but his strike was deflected wide after great work from Long in the build-up.