The Guinea striker slid home Massimo Luongo's cross 15 minutes from time after the hosts had missed several chances to take the lead.
Northern Ireland forward Conor Washington fired against the bar and volleyed over as QPR had 21 shots.
England Under-21 striker Tammy Abraham went close for City in the first half, but powered his effort wide.
Following an even first half, which also included Lee Tomlin's low strike for the visitors being tipped wide by Alex Smithies, QPR dominated after the break.
After only one win in their past seven league games, boss Jimmy Floyd Hasselbaink made changes, and it was two of the men who came in - Washington and Sylla - who pulled the strings for the hosts.
Washington's strike from 20 yards took a deflection before smashing against the crossbar, shortly after Tjaronn Chery's shot was saved by Frank Fielding.
Bobby Reid almost put City in front after racing onto Tomlin's through-ball, but his effort was blocked by Smithies.
And moments later Sylla broke the deadlock, getting between two defenders, to poke in from close range.
QPR manager Jimmmy Floyd Hasselbaink: "In the first half we were the better team and should have scored.
"It's always difficult when you've played that well and are not in front at half-time, but we were persistent and did the same in the second half.
"We went for it. It was always going to be a battle in midfield and about winning the physical battle. Whoever won that could then create, and we did that particularly well.
"We deserved the three points. It's always important to win at home and obviously it was in the backs of our minds. We have been unfortunate in the last few games but we cannot look back. What's important is what is now in front of us."
Bristol City boss Lee Johnson: "Bobby Reid is a good player but he has missed a very good chance. But you have to say it was a very good save. Sometimes you just have to give credit to the opposing goalkeeper.
"It was a key point in the match really because it got their tails up and made them believe they could go on and win it. It was a good game. It had quality in sporadic patches, and had aggression.
"I've got a good group of lads and we've got a lot of players now back fit, so our squad looks strong and healthy."
Match ends, Queens Park Rangers 1, Bristol City 0.
Second Half ends, Queens Park Rangers 1, Bristol City 0.
Attempt blocked. Luke Freeman (Bristol City) left footed shot from outside the box is blocked. Assisted by Tammy Abraham.
Attempt missed. Tammy Abraham (Bristol City) header from the centre of the box is too high. Assisted by Luke Freeman with a cross.
Offside, Bristol City. Gary O'Neil tries a through ball, but Aden Flint is caught offside.
Foul by Niko Hamalainen (Queens Park Rangers).
Luke Freeman (Bristol City) wins a free kick on the right wing.
Offside, Queens Park Rangers. James Perch tries a through ball, but Sebastian Polter is caught offside.
Attempt missed. Aaron Wilbraham (Bristol City) header from very close range is high and wide to the left. Assisted by Lee Tomlin with a cross following a corner.
Attempt missed. Aden Flint (Bristol City) header from the centre of the box misses to the right. Assisted by Luke Freeman with a cross following a corner.
Substitution, Queens Park Rangers. Sebastian Polter replaces Idrissa Sylla.
Corner,  Bristol City. Conceded by Nedum Onuoha.
Attempt blocked. Joe Bryan (Bristol City) right footed shot from the centre of the box is blocked. Assisted by Lee Tomlin.
Corner,  Bristol City. Conceded by James Perch.
Attempt blocked. Aaron Wilbraham (Bristol City) left footed shot from more than 35 yards is blocked. Assisted by Marlon Pack with a headed pass.
Idrissa Sylla (Queens Park Rangers) wins a free kick on the right wing.
Foul by Hördur Bjorgvin Magnusson (Bristol City).
Substitution, Bristol City. Luke Freeman replaces Bobby Reid because of an injury.
Delay over. They are ready to continue.
Delay in match Bobby Reid (Bristol City) because of an injury.
Foul by James Perch (Queens Park Rangers).
Bobby Reid (Bristol City) wins a free kick in the defensive half.
Attempt missed. Bobby Reid (Bristol City) right footed shot from the centre of the box is high and wide to the right.
Goal!  Queens Park Rangers 1, Bristol City 0. Idrissa Sylla (Queens Park Rangers) left footed shot from the centre of the box to the bottom right corner. Assisted by Massimo Luongo with a cross.
Attempt missed. Aden Flint (Bristol City) header from the centre of the box misses to the left. Assisted by Gary O'Neil with a cross following a corner.
Corner,  Bristol City. Conceded by Tjaronn Chery.
Corner,  Bristol City. Conceded by Alex Smithies.
Attempt saved. Bobby Reid (Bristol City) right footed shot from the centre of the box is saved in the centre of the goal. Assisted by Lee Tomlin.
Attempt blocked. Tjaronn Chery (Queens Park Rangers) right footed shot from outside the box is blocked.
Corner,  Queens Park Rangers. Conceded by Joe Bryan.
Conor Washington (Queens Park Rangers) wins a free kick in the defensive half.
Foul by Aaron Wilbraham (Bristol City).
Corner,  Bristol City. Conceded by Nedum Onuoha.
Attempt missed. Ben Gladwin (Queens Park Rangers) right footed shot from the centre of the box misses to the left. Assisted by Idrissa Sylla.
Attempt blocked. Ben Gladwin (Queens Park Rangers) right footed shot from outside the box is blocked. Assisted by Idrissa Sylla.
Attempt saved. Steven Caulker (Queens Park Rangers) header from the centre of the box is saved in the bottom left corner. Assisted by Tjaronn Chery with a cross.
Corner,  Queens Park Rangers. Conceded by Frank Fielding.
Attempt missed. Conor Washington (Queens Park Rangers) right footed shot from the right side of the box is close, but misses the top right corner. Assisted by Tjaronn Chery.
Foul by Niko Hamalainen (Queens Park Rangers).
Lee Tomlin (Bristol City) wins a free kick in the defensive half.
Idrissa Sylla's second-half goal earned Queens Park Rangers a narrow victory over Bristol City at Loftus Road.