The clash at the national stadium had looked set to end goalless before the injury-time strike sealed a 10th win in a row for Rangers.
Saturday's match - in front of a crowd of 30,117 - was the first Hampden clash between the sides since November 1957, when Rangers came out on top as 4-2 winners.
Ally McCoist was forced to make two changes from the side which defeated Clyde on Boxing Day. Andy Little was sidelined through injury, while Lewis Macleod revealed on Twitter before kick-off that he was ill with a virus, meaning he was absent for the first time this season.
Queen's Park had given Rangers a tough match at Ibrox in October and they looked well up for this encounter, carving out a couple of chances early on. A free-kick 20 yards out provided an opportunity to put the visitors under pressure but Michael Keenan was wasteful with an effort that was well off-target.
David Anderson came closer when he tried his luck with a shot from just outside the box which fizzed across goal and just wide of the upright.
The best chance so far fell to Rangers when a lovely cross from the left from Barrie McKay set up David Templeton for a shot that flashed inches over the crossbar. Crawford was not too far away when he met a Black cross 10 yards out and bulleted a header just over, as the first half ended goalless.
Rangers continued to push for the opener after the restart and a lofted effort from Lee McCulloch landed on the roof of the net, with Neil Parry untroubled in goal.
The goalkeeper was then called into action to make an impressive save to deny McKay, who unleashed a powerful drive after a one-two with McCulloch.
Queen's Park were dealt a blow when they were reduced to 10 men when James Brough picked up a second caution for a foul on Templeton after 56 minutes.
Parry reacted quickly again to snuff out another Rangers threat, this time racing off his line to block from Lee Wallace, who had been teed up by Templeton.
Aird had replaced Black and Francisco Sandaza was thrown into the action for Kyle Hutton with 20 minutes to go, with Rangers struggling to break down a stubborn Spiders side. The Spanish striker was clearly aiming to make an immediate impact but his finishing let him down as he rifled into the side-netting.
The home side could have snatched the points when Aidan Connolly released Lawrence Shankland in plenty of space but his shot lacked power and was easily smothered by Neil Alexander.
Shankland had the chance to make amends with a free-kick that escaped the grasp of the Rangers goalkeeper but swerved past the far post. Sandaza again rippled the side-netting for Rangers, before Aird grabbed the winner in injury time with a shot from just outside the area that squeezed past several bodies in the box and nestled in the bottom corner.