Liam Cullen (left) and Zak Vyner watch as the Swansea striker's shot rolls towards the far corner to put the home side ahead
Swansea City ended a six-game winless streak as goals from Liam Cullen and Olivier Ntcham secured a deserved victory over Bristol City.
Cullen steered home on the turn before the break and Ntcham's low shot sealed the points late on.
Swansea's much-needed triumphed eased the pressure on Russell Martin and his team, who have been heavily criticised after a miserable run.
They climb to 16th in the Championship, while Bristol City remain 14th.
This was a second successive defeat for the Robins, who look destined to finish the season somewhere in mid-table.
Swansea will hope to join them having eased concerns that they could be sucked into a relegation scrap with this result, with the gap to the bottom three now 10 points.
- Swansea end winless run against Bristol - reaction
It was just a fourth victory in 22 league games for the Welsh club, while Bristol City have won only once in their last five second-tier outings.
This was a fourth meeting of these two clubs this season, the most recent of which saw Bristol City win an FA Cup third-round replay on this ground.
That was two months ago, a time when Martin's team were still talking about a play-off push, but an alarming run of form has left Swansea looking down the table rather than up.
They looked determined to change the mood from the outset here, with Joel Piroe slicing a shot wide only 15 seconds into the game.
Swansea dominated possession for most of the first period, going close again when Harry Darling's powerful header was saved by Max O'Leary before Liam Walsh's acrobatic effort on the rebound was blocked.
Walsh was involved when the goal Swansea deserved arrived, as his searching pass hit Olivier Ntcham on the back and dropped invitingly for the Cameroon international to feed Cullen.
His first-time finish had just enough power and precision, the ball rolling beyond O'Leary's dive and into the far corner.
Cullen's strike stirred Bristol City into life, with Alex Scott scuffing a volley into Andy Fisher's arms before teeing up Andy King for a shot which was well blocked by Piroe.
Swansea missed chances to double their lead early in the second period, with Cullen lifting a shot too high before Piroe's header beat O'Leary but bounced to safety off the post.
Bristol City countered, Omar Taylor-Clarke shooting straight at Fisher before sustained penalty appeals for handball by Ben Cabango were ignored.
Olivier Ntcham scores his sixth goal of the season
With that Swansea found the pressure-relieving second goal, as Jamie Paterson crossed for fellow substitute Morgan Whittaker at the far post.
His header back across goal hit Andy King and dropped for Ntcham, who turned away from Taylor-Clarke and swept the ball into the bottom corner from 15 yards.
Paterson came close to adding a third before Bristol City substitute Andreas Weimann saw a stoppage-time reply ruled out for offside.
With that Swansea could celebrate a first clean sheet since December - and a welcome win.
- Line-upsMatch StatsLive Text
- 1Fisher6Darling5Cabango23Wood3ManningBooked at 82mins8Grimes18CundleSubstituted forWhittakerat 72'minutes28WalshSubstituted forCooperat 72'minutes10NtchamSubstituted forSorinolaat 90+2'minutes17PiroeBooked at 82mins20CullenSubstituted forPatersonat 62'minutes
- 12O'Leary19TannerSubstituted forWeimannat 45'minutes26Vyner16Pring3Dasilva35Taylor-ClarkeSubstituted forWilsonat 80'minutes10King17SykesBooked at 82mins7Scott20BellSubstituted forWellsat 68'minutesBooked at 74mins9CornickSubstituted forMehmetiat 62'minutes
Referee:Jeremy SimpsonAttendance:16,730Match StatsHome TeamSwanseaAway TeamBristol CityPossessionHome58%Away42%ShotsHome17Away6Shots on TargetHome5Away3CornersHome3Away7FoulsHome14Away6Live Text Post update
Match ends, Swansea City 2, Bristol City 0.
Second Half ends, Swansea City 2, Bristol City 0.
Corner, Bristol City. Conceded by Ryan Manning.
Matt Grimes (Swansea City) wins a free kick in the attacking half.
Foul by Alex Scott (Bristol City).
Delay over. They are ready to continue.
Delay in match (Bristol City).
Offside, Bristol City. Anis Mehmeti tries a through ball, but Andreas Weimann is caught offside.
Foul by Ben Cabango (Swansea City).
Alex Scott (Bristol City) wins a free kick in the attacking half.
Substitution, Swansea City. Matthew Sorinola replaces Olivier Ntcham.
Corner, Bristol City. Conceded by Matt Grimes.
Olivier Ntcham (Swansea City) wins a free kick in the defensive half.
Foul by Mark Sykes (Bristol City).
Offside, Swansea City. Andrew Fisher tries a through ball, but Morgan Whittaker is caught offside.
Attempt blocked. Jamie Paterson (Swansea City) left footed shot from the centre of the box is blocked. Assisted by Nathan Wood.
Jamie Paterson (Swansea City) wins a free kick in the attacking half.
Foul by Andy King (Bristol City).
Corner, Swansea City. Conceded by Andy King.
Attempt blocked. Jamie Paterson (Swansea City) right footed shot from the left side of the box is blocked. Assisted by Ryan Manning.
Page 1 of 6rewindpreviousNavigate to the next pagenextNavigate to the last pageforward