A brace by Lee Trundle put Swansea's promotion train back on track and gave them their first victory in six starts.
He opened the scoring with a neat header in the 25th minute and then converted a spot-kick on the hour to seal a notable victory.
Scunthorpe matched the Swans in the opening half and levelled in the 32nd minute when Andy Butler fired in from close range, but after the Iron's Stevland Angus was dismissed for pulling back Lee Thorpe the match swung the way of the home side.
Swansea skipper Roberto Martinez was left out of the starting line up as Kenny Jackett's side tried to put an end to a poor run.
Scunthorpe showed two changes at the side beaten at league leaders Yeovil in midweek.
A free-kick by Iron skipper Ian Baraclough brought a diving save from Willy Gueret in the 18th minute but the Swans responded immediately and it needed a superb tackle from Butler to deny leading scorer Trundle.
The Swans kept up the pressure and a quick turn and shot by Thorpe had Paul Musselwhite stretching to tip over the bar.
From the resulting corner taken by Kevin McLeod the ball was flicked on by Izzy Iriekpen and Trundle headed into the net for his 18th goal of the season.
The visitors equalised seven minutes later when former Swan Steve Torpey headed on a free-kick from Richard Kell and Butler crashed the ball in from close range.
Swansea made a change at the interval with Andrew Gurney replacing Kevin Austin.
It only took the home side four minutes to threaten the Scunthorpe goal when Trundle twisted and fired a shot into the far corner but Musselwhite dived to push the ball away.
Scunthorpe were dealt a blow in the 58th minute when Angus was given a red card after fouling Thorpe as the former Bristol Rovers striker raced through on goal.
Trundle stepped up and sent Musselwhite the wrong way from the resulting spot-kick to give the Swans a deserved lead.
The impressive McLeod had the ball in the net in the 85th minute but it was disallowed for offside.
Ten-man Scunthorpe held on in the closing stages as the Swans went looking for a third goal to make sure of their first victory over a top-six side this season.