Swansea City finally subdued an in-form Doncaster Rovers side to record a 3-1 victory at the Liberty Stadium.
Swans skipper Gary Monk failed a late test on his back and Albert Serran slotted into central defence, but Jordi Gomez recovered from his hamstring strain to take his place in midfield.
Swansea's first scoring opportunity came in the seventh minute, when a run down the middle by Ashley Williams left Gomez in the clear, but he blasted his shot high over the bar.
But it was Donny who took the lead four minutes later when a huge gap opened in the Swansea defence. Richie Wellens had the first stab at prodding the ball home, but when Dorus de Vries blocked with his foot, James Coppinger was on hand to force the ball home from close range.
Gomez combined with Angel Rangel to cut open the visitors' rearguard in the 19th minute, but Jason Scotland mistimed his run and was flagged offside with only Neil Sullivan to beat.
In the 27th minute, the visitors' full-back James O'Connor needlessly pushed Alan Tate in the area to give the Swans a penalty that Scotland despatched with ease for his 18th goal of the season.
The Swans fully deserved to be back on level terms and a rasping drive from Gomez forced a full-length save from Sullivan.
It was a very ragged Rovers who finished the first half hanging on, but they were dealt a blow in the final minute when Coppinger was stretchered off after receiving a blow to the head.
The Swans took control in the second half and in the 63rd minute Scotland sent Mark Gower through on goal but Sullivan went down low to push the shot behind.
Swansea went ahead in the 70th minute and again Scotland was involved after laying the ball back to Gomez, who drove into the net from a central position.
Wellens received his second yellow card in the 84th minute after bringing down Gomez as the game threatened to get beyond referee Scott Mathieson.
There was just time for the impressive Scotland to cross to Gomez in the 90th minute and the Spaniard whipped home his second strike of the afternoon to make sure of the points and keep the Swans in the play-off hunt.