Swansea City were beaten for only the third time this season as Duncan Watmore's brace fired Middlesbrough to victory at the Riverside Stadium.
Watmore struck in each half to put Neil Warnock's men in control before substitute Yan Dhanda set up a tense finish late on with what was his first goal of the campaign.
But Steve Cooper's men were unable to snatch an equaliser as they tasted defeat for the first time since the 1-0 defeat to Norwich City.
The trip to Teesside represented the first of eight matches in December for the Swans.
And such is the hectic nature of the schedule ahead, Cooper made three changes from the side that started the 1-0 win over Nottingham Forest on Sunday.
Ryan Manning, Ben Cabango and Kasey Palmer came in for Jake Bidwell, Kyle Naughton and Matt Grimes who all dropped to the bench.
It meant top scorer Andre Ayew captained the visitors who had collected seven of nine points on offer since the international break.
Swansea went into the match with the best defensive record in the division while the hosts had the joint-second best record.
And the events that unfolded early on went according to the scripts of most fans and pundits as neither side caused many problems in what was a very tight Championship encounter.
However, Swansea had two golden opportunities to break the deadlock in the 19th minute after working their way up the right wing.
Jamal Lowe's driven shot was well saved by Marcus Bettinelli before Connor Roberts' strike from the rebound was blocked by Marcus Tavernier.
And they were punished for failing to bulge the net as Boro broke at the other end seven minutes later and went ahead as Watmore's 25-yard strike took a huge deflection off Marc Guehi to fly beyond Freddie Woodman.
Swansea last won after conceding first at Birmingham City in July.
They were left fuming 10 minutes before the break as referee Keith Stroud failed to point to the penalty spot after Ayew appeared to be clipped in the box.
Palmer then fired a shot into the back of Ayew before Jay Fulton produced a vital last-ditch tackle to thwart Tavernier at the other end.
Warnock's men almost doubled their lead two minutes before the break, although Woodman brilliantly palmed away Sam Morsy's shot to ensure Swansea trailed by just one goal at the interval.
Cooper clearly felt there was a route back into the game. And he made a triple substitution for the second half, with Viktor Gyokeres, Wayne Routledge and Grimes coming on for Cabango, Lowe and Fulton.
The changes should have paid dividends within a minute of the second half as Bettinelli got caught out from a long ball forward, but Gyokeres' shot was deflected over, much to the frustration of Routledge who was unmarked on the edge of the box when the Swedish attacker fired at goal.
Boro had a strong spell around the hour mark, and Woodman was forced to deny Marvin Johnson before Guehi produced a stunning block on the line to keep out Morsy's goal bound effort from a corner.
Swansea responded though, and the home side had Djed Spence to thank for throwing himself in front of Korey Smith's shot from the corner of the six-yard box.
Dhanda replaced Palmer for the final 25 minutes as the Swans continued to push for an equaliser.
But they were caught on the break soon after as Watmore charged through on goal having been left in acres of space, and he drilled beyond Woodman to notch his second goal of the night to put Warnock's troops in a commanding position.
Swansea desperately struggled in the final third, although they gave themselves a glimmer of hope with 12 minutes to go as Dhanda's shot deflected in off Dael Fry.
The former Liverpool man then had a shot deflected over as Swansea threw the kitchen sink at Middlesbrough.
Dhanda's sublime through ball sent fellow replacement Jordon Garrick through on goal in the final stages, although the winger was flagged offside before he lashed beyond Bettinelli.
And Swansea couldn't find a late equaliser as they lost on the road in the league for only the second time this season.
Middlesbrough: Bettinelli; Spence, Fry, McNair, Bola; Morsy (Coulson 80), Howson, Tavernier; Watmore (Saville 67), Akpom, Johnson (Wing 80).
Subs not used: Stojanovic, Wood, Jones, Folarin, Roberts, Assombalonga.
Goals: Watmore 26 & 67
Yellow cards: Johnson 45, Akpom 57
Swansea City: Woodman; Cabango (Gyokeres 46), Bennett, Guehi; Roberts, Smith (Garrick 81), Fulton (Grimes 46), Manning; Palmer (Dhanda 65); Ayew (C), Lowe (Routledge 46).
Subs not used: Benda, Bidwell, Naughton, Cullen.
Goal: Dhanda 78
Yellow cards: Fulton 45+1, Grimes 85
Referee: Keith Stroud
You can re-live the match updates in full below: