Scotland remain in sight of a World Cup play-off place thanks to goals from Scott Brown and James McFadden.
The Scots improved after a poor first half and Brown headed home a Steven Fletcher cross after McFadden had blazed a great chance high and wide.
McFadden made amends for that miss with a glorious solo goal, rounding the keeper after a run from his own half.
Macedonia had been the better side before the break and Scotland keeper Craig Gordon made three vital stops.
Scotland must now address the small matter of beating the Netherlands at Hampden on Wednesday to guarantee second place in Group 9 and a chance of a play-off place for next year's finals in South Africa.
And a stirring second-half display at a rain-lashed national stadium will ensure that the Scots go up against the country ranked third in the world in a positive mood.
It was a different story at half-time against Macedonia when George Burley's men trudged off to a chorus of jeers.
The visitors began well, causing Scotland problems with their swift, intricate passing at close quarters and Ilco Naumoski glanced an early header wide.
Lazio striker Goran Pandev was seeing a lot of the ball and his snap shot on 11 minutes forced Gordon to get down smartly and block at his near post.
The hosts' first glimpse of goal came on 19 minutes when the ball broke to Brown on the edge of a crowded penalty area but the Celtic midfielder drove his shot wide.
Brown then drilled a powerful strike into the side-netting after skipping by a couple of challenges when a quick free-kick had caught the Macedonians napping.
However, that brief flurry was all the home side had to offer in the first 45 minutes as Macedonia assumed control in the driving Glasgow rain.
There was a let off for Scotland when Aco Stojkov gathered a cute Pandev pass to burst into the penalty area but the midfielder elected to cut the ball back rather than shoot from a promising position, allowing the defence to clear.
With Macedonia knocking the ball around confidently, Pandev again warmed the hands of Gordon with a powerful, deflected 22-yard strike on the stroke of half time.
The second half started at a whirlwind pace, with Scottish full-backs Alan Hutton and Steven Whittaker, an early replacement for the injured Callum Davidson, involved in early attacking surges.
A wonderful chance to break the deadlock was squandered by McFadden, who ballooned a shot high and wide after neatly side-stepping a defender right in front of goal.
That miss was immediately matched by Pandev, with the Macedonia ace shooting straight at the onrushing Gordon rather than squaring for Stojkov, who was perfectly placed to convert.
McFadden capped a fine second half display with a great goal
Macedonia goalkeeper Jane Nikolovski then let a tame Kenny Miller shot squirm from his grasp but a defender managed to get a toe to the ball ahead of the sliding Darren Fletcher.
Scotland were rewarded for their markedly improved performance when Steven Fletcher flighted a cross in from the left and Brown flicked a header into the far corner on 56 minutes.
With the game stretched and both teams tearing forward at every opportunity, Macedonia's Slavco Georgievski slammed a shot over the crossbar with the goal at his mercy, while Whittaker replied with a rising shot.
McFadden, who will miss the Netherlands after picking up a yellow card, wriggled through a succession of challenges to somehow fire the ball across goal but neither Miller or Steven Fletcher could capitalise.
Whittaker, growing in confidence, then jinked into the penalty box to poke a shot into the side-netting and McFadden's curling effort flew narrowly wide.
Miller cut in from the left to force a save from the boot of Nikolovski before McFadden sealed the victory with a moment of quality.
Gathering the ball in his own half, the forward dribbled by an opponent before slipping through both central defenders and rounding the goalkeeper with nonchalance to stroke the ball into an empty net to send Hampden delirious with delight.
Scotland: Gordon, Hutton, McManus, Weir, Davidson (Whittaker 14), Darren Fletcher, Alexander, Brown (Hartley 73), Miller, Steven Fletcher (Maloney 68), McFadden. Subs Not Used: Marshall, O'Connor, Naismith, Barr.
Booked: Brown, McFadden. Goals: Brown 56, McFadden 81.
This page is best viewed in an up-to-date web browser with style sheets (CSS) enabled. While you will be able to view the content of this page in your current browser, you will not be able to get the full visual experience. Please consider upgrading your browser software or enabling style sheets (CSS) if you are able to do so.