An Aaron Ramsey penalty and Hal Robson-Kanu’s first goal for Wales saw Chris Coleman’s side turn a half-time deficit into victory in a game which saw both sides finish with 10 men.
Robert Snodgrass saw red for a tackle on Chris Gunter that led to the penalty, and Ramsey followed suit in the last minute of stoppage time for a professional foul after he pulled down James McArthur when he was clean through.
Defender Grant Hanley gave the home side the lead against the run of play with a header from a Charlie Mulgrew corner at the end of the first half and the Scots, in Gordon Strachan’s first competitive game in charge, looked a bit more comfortable after the break.
However, in the 70th minute Snodgrass was sent off for picking up his second yellow card of the game for a challenge on Welsh defender Gunter inside the home penalty area and Ramsey levelled from the spot. And just a minute later Robson-Kanu headed in the winner.
Strachan’s plans were disrupted with only a couple of minutes gone when Steven Fletcher injured himself on the way down from an aerial challenge with Welsh defender Ben Davies.
The Sunderland striker looked in some distress and he was carried off on a stretcher to be replaced by veteran striker Kenny Miller.
Scotland were being outplayed and Wales enjoyed attack after attack as the snow continued to fall.
A decent move by the Scots in the 32nd minute ended up with Miller heading Snodgrass’ cross over – and for the first time in the game Scotland looked as if they were getting up to speed.
And the Scots grabbed an unlikely lead when Hanley leapt at the back post to power a header from Mulgrew’s corner past Boaz Myhill from six yards.
As conditions deteriorated, Wales kept coming forward and in the 70th minute Snodgrass recklessly conceded a penalty – and earned himself a second yellow card – for a challenge on Gunter in the box and Ramsey hammered the spot-kick in off the bar.
The Tartan Army were stunned but they had more to worry about barely a minute later when the unmarked Robson-Kanu headed Andy King’s cross past Allan McGregor from six yards out.
There was to be no late rally from Strachan’s men but there was time for Ramsey to pick up a straight red card for a last man foul on McArthur.