Swansea City ended their six-match winless streak as an Andre Ayew brace and a Sam Surridge strike sunk nine-man Middlesbrough at the Liberty Stadium.
Ayew had fired Steve Cooper’s side into a first-half lead as he converted from the spot after being adjudged to have drawn a foul in the area.
But the hosts were pegged back when Marcus Tavernier fired a left-footed drive high into the net from distance.
But the game swung back in Swansea’s favour when Marcus Browne saw red for an awful tackle on Mike van der Hoorn.
Ayew soon restored the Swans lead with his ninth goal of the season before Surridge made sure of the points with his first league goal in SA1.
It was the Swans’ first home win since seeing off Cardiff in the South Wales derby at the end of October and just a second home win since the end of August, providing a timely boost ahead of the hectic festive schedule.
Cooper had made just one change with Yan Dhanda coming in for the suspended Tom Carroll, but it was a rather muted start.
The visitors had the only early effort of note as Jonny Howson fired over on the angle after Jake Bidwell had done enough to prevent Dael Fry having a free header after good build-up work from Middlesbrough.
The Swans found some fluency 15 minutes in, nice link work between Andre Ayew and Dhanda ending with a Connor Roberts cross being scrambled clear in the six-yard box.
Ayew flashed an effort wide from 20 years a few minutes later and it was the Ghanaian who won the Swans a penalty in the 21st minute, reacting quickest after his initial shot was saved and being fouled by Fry.
And the forward dusted himself off to fire home his eighth goal of the season from the spot.
The Swans immediately swept forward again, Ayew setting up Sam Surridge who saw his shot saved, with Aynsley Pears also parrying a follow-up from George Byers.
Middlesbrough had an opening to respond when a deep corner fell to Daniel Ayala on the right side of the six-yard box, but Bidwell blocked his goalbound effort and the Swans held their lead at the interval.
The Swans started the second half on the front foot, Dhanda nicely working some space for a Bidwell delivery, but the final ball could not pick out a white shirt.
However, the Swans survived a scare seven minutes after the resumption as Marcus Browne went to ground with Grimes in attendance.
It briefly looked as though referee Dean Whitestone was preparing to point to the spot, but instead, he booked Browne for a dive and awarded a Swansea free-kick.
But the Swans were punished when a loose pass from Celina allowed Boro to counter.
A smart pass sent Ashley Fletcher careering forward, and his lay-off was fired home from the edge of the area by Tavernier, with Freddie Woodman beat all ends up at his near post.
Swansea sought an immediate response, Surridge dragging wide from an excellent Grimes pass before the visitors went a man down.
Browne’s eventful cameo came to an end when he rashly dived in with studs raised on van der Hoorn and was shown a straight red card with 29 minutes to play.
And Swansea made the most of the numerical advantage to take the lead in the 70th minute.
Substitute Barrie McKay produced a lovely pass to cut two defenders out of the game, and Ayew emphatically fired a left-footed shot into the net.
And just three minutes later the Swans wrapped it up, Bidwell nodding a Grimes pass down for Surridge to control and fire across the keeper.
Matters just got worse for Boro, and they lost McNair to a red card after a stamp on Grimes near the touchline on halfway as the Swans eased to victory.