
Zan Vipotnik (second right) scored his 18th Swansea goal this season and his 16th in the Championship
Swansea City continued their superb home form as Zan Vipotnik's first-half goal proved enough to secure victory over Bristol City.
Vipotnik, the division's leading scorer, volleyed in his 16th league goal of the season to give Swansea a first-half lead and they held on for a seventh win in their past eight home second-tier games.
Vitor Matos' Swansea side have enjoyed more convincing wins than this, with Bristol City unfortunate to leave with nothing having been the more menacing side for long spells.
Sinclair Armstrong and Emil Riis both hit the woodwork for Gerhard Struber's team, whose failure to find a finish saw them slip to a fifth defeat in their past 10 league outings.
Victory briefly lifted Swansea to within three points of the Championship play-off places, though the gap was back to six points after Wrexham's win over Ipswich later in the day.
While Swansea climbed a place to 15th in the table, Bristol City are down to 12th and are now four points outside the top six.
The story might have been different had Armstrong, who was always a threat, not been denied an early opener when he tricked his way beyond Ben Cabango only to hit the near post with a shot from a narrow angle.
Lawrence Vigouroux looked on with relief as the ball rolled across goal and away to safety, and the Swansea goalkeeper watched on once more as George Earthy lifted another Bristol City effort over the bar.

Sinclair Armstrong was a threat for Bristol City but could not save the Robins from a first defeat in three games
Swansea struck via their one clear-cut chance of the match.
When Bristol City left-back Neto Borges – who was under pressure from Eom Jisung – could only head Gustavo Nunes' driven cross back across the face of his own goal, Vipotnik was on hand to guide in his 18th club goal of the season.
Struber's side continued to ask questions throughout, with Tomi Horvat dragging wide from 20 yards before Armstrong and Delano Burgzorg drew second-half saves from Vigouroux.
Substitute Riis had Vigouroux scrambling late on as his curling 25-yard effort hit the far post, before Malick Yalcouye and Liam Cullen forced saves from Radek Vitek as Swansea threatened to double their advantage late on.
Analysis: Home successes give Swansea play-off chance
Swansea are back in action on their own turf when Preston North End visit on Tuesday, in a game which is all but sold out thanks in no small part to the fact that Snoop Dogg is set to attend for the first time since becoming a co-owner of the club.
If Matos' side can deliver another home victory, the feeling that the play-offs are possible will continue to gather pace.
Swansea were only outside the bottom three on goal difference when they suffered defeats to Derby and West Bromwich Albion during Matos' first week in charge in late November.
Since then, they have won nine of 15 league games.
That impressive form will have to continue for another six weeks or so if Swansea are to be in play-off contention come the back-end of the season but, whatever happens from here on, Matos has transformed the mood at the Welsh club.
Bristol City are firmly in the play-off mix and remain two points better off than Swansea – though Struber, who watched from the stands as a result of a touchline ban, must feel that gap should be a little wider given the balance of this contest.

Bristol City have conceded 10 goals in their past four league games
What they said
Swansea head coach Vitor Matos:
"Bristol City is a really good team, well organised, they are good on counter press as well. Today I think they were a little bit more aggressive than normal, man-marking high up the pitch and that sometimes makes the game unpredictable and hard to control.
"We found a way to be in the opposition half. I think that was quite important for us, to have moments of good spells with the ball. In one of those moments, we score.
"Then we went back, [had] good organisation. It was a really important game in terms of second balls, because Bristol is massive on that.
"Then second half was a different game. In the moments where Bristol was pushing, we were able to stay organised, concentrated, and with time, we found again ways to come back. It was a really tough game but we could get to three points today."
Bristol City boss Gerhard Struber:
"We expected a difficult game, that was crystal clear. But at the same time, we have to have a different determination in the final third.
"They had one chance and they used it. We controlled the game in a good way but we need a different determination in the final third.
"We had big chances. We have to use them. Everything is really close, every game has its moments. In these moments, we have to be ready."
Struber: "Everything today was nice, but not enough"
Player of the match
After the opportunity to rate players has closed, the score displayed represents the average from all the submissions by BBC Sport users.