Chelsea took the lead through Fabregas, after some neat build-up play he flicked up Pedro’s pass, and smartly finished past Lukasz Fabianski. Swansea equalised as Fernando Llorente met Gylfi Sigurdsson's long free-kick on the half-time whistle.
Pedro restored Chelsea's lead, his 25-yard shot slipped through the hands of Fabianski, while Costa finished the game off with 10 minutes to spare.
The first chance fell inside the first minute, a short corner by Chelsea found Pedro on the edge of the box but he shot just over.
Swansea’s first of the half fell to Federico Fernandez, who could have celebrated the new three-year contract he signed Friday with a goal, but his header flew just wide.
The warning signs were there for Swansea, as Eden Hazard found Fabregas arriving late in the box, his shot was well blocked by Alfie Mawson.
The goal came five minutes later, as Fabregas capped off his 300th Premier League appearance with a delicate finish inside the penalty area after Costa, Hazard and Pedro combined around the box.
The goal is the 55th that Swansea have conceded this season, more than any of their other Premier League campaigns, with 12 matches to go.
Chelsea continued to dominate, Fabregas again arriving late with a volley but a stunning save from Fabianski kept Swansea in the game.
Swansea’s problems came from no-one picking up Fabregas from deep as he dictated play, but neither Tom Carroll or Leroy Fer are particularly good pressers, so it’s understandable that Paul Clement decided to step off.
Fabregas again the architect, his free-kick was met by Gary Cahill but the header went a few yards wide.
Another chance before half time, as Pedro intercepted the ball on the half-way line, beats Fernandez but his dazzling run came to an end as Mawson blocked his goal-bound shot.
Swansea’s equaliser came on the half-time mark, as January Chelsea transfer target Llorente met Sigurdsson’s cross without a defender near him.
Chelsea started strongly, as Hazard dummied the ball which he received back from Fabregas, his shot was well saved by Fabianski though.
Fabregas went close again minutes later, after Hazard beat Fernandez and pulled the ball back for the Spaniard but his fierce shot hit the bar.
Whether it’s because the Chelsea legend was in the stands this afternoon, but Fabregas’ late runs are very reminiscent to those of Frank Lampard’s.
Chelsea continued to dominated but struggled to create any clear-cut chances until the 72nd minute.
In the meantime there was a big shout for handball inside the Chelsea area, as Cesar Azpilicueta stopped Sigurdsson going past him, but referee Neil Swarbrick disagreed with Swansea’s star man.
Chelsea then had a penalty denied, as Mawson dived in to stop Costa in the area, again nothing given by the referee.
On that 72nd minute, Pedro was able to restore Chelsea’s lead. His shot from 25 yards shouldn’t be beating Fabianski, but the ball seems to go through his fingertips.
Swansea then went to a more positive approach, Jordan Ayew and Luciano Narsingh were subbed on as Sigurdsson tested Courtois from a free-kick.
N'golo Kante could have finished the game off, he meets Nemanja Matic's cross but his first time shot flew way over the bar.
Costa sealed the game's fate in the 84th minute. Hazard beat Kyle Naughton with ease, cut the ball back to Costa who finished calmly.
The result sees Chelsea go 11 points clear at the top of the table, while Swansea stay 15th.