Canos gav Brentford ledningen efter 18 minuter, och sköt hem från kanten av lådan från Ryan Woods pass.
Det var 2-0 innan halvtid som Vibe gjorde sitt nionde mål i 12 ligan spel med en loopad rubrik över City målvakt Frank Fielding.
Nederlaget ser Robins sjunka till 21:a plats, en punkt ovanför nedflyttningszonen, medan Brentford rör sig upp till 12:e.
Lee Johnsons sida hade flyttat upp till 19:e plats tack vare back-to-back segrar över Wigan och Huddersfield, men Burtons 1-0 seger över Terriers och Nottingham Forests 1-1 dragning med Preston såg dem förlora mark i kampen för att slå släppa.
Dean Smith's Brentford har nu, ledd av den anfallande trion Canos, Vibe och Jota, vunnit fem av sina åtta senaste mästerskapsmatcher.
De kunde ha gått vidare efter bara två minuter när Romaine Sawyers stung Fieldings händer med en svängande 25-yards drive.
Men, City tog nästan ledningen själva, med Aden Flint nära rad huvudet går brett innan Daniel Bentley räddade väl från sin egen kapten Harlee Dean.
Brentford tog kontroll över matchen i en åtta minuters trollformel, med Canos hitta nätet med en vinklad drive innan Vibe reagerade snabbast på Konstantin Kerschbaumers flimrade lob för att dubbla hemmasidans ledning.
Robins strejker Bobby Reid slog sidonät och Matty Taylor borrade brett med målet gaping sent, men City misslyckades med att göra mål för första gången i fyra matcher.
Brentford manager Dean Smith berättade för BBC Radio London: "Jag tyckte i 70 minuter idag var vi utmärkt och spelade några bra fotboll.
"Första halvan hade vi fullständig kontroll och förtjänade de två målen och borde ha haft mer - vi hade ett mål som inte tilläts från ett hörn när det inte var något fel med det.
"Jag såg Bristol City slå Huddersfield. Vi var tvungna att vara snälla och jag trodde att vi var det."
Bristol City manager Lee Johnson: " Andra halvan skapade vi mer, men vi började inte i närheten av tillräckligt bra, och det är en besvikelse. Vi kan helt enkelt inte börja så och förväntar oss att gå och vinna spel. "
"Som vi har spelat såg jag inte det här komma. Det är så frustrerande eftersom du vet att vi har kvalitet i laget men vi höll inte bollen i förskott, våra försvarare var för djupt och jag tyckte synd om grabbarna i mitten.
"När vi väl behållit bollen och bytt form på halvtid blev vi bättre, men då hade dåligt försvar lämnat oss med för mycket för att göra."
Matchen slutar, Brentford 2, Bristol City 0.
Andra halvlek, Brentford 2, Bristol City 0.
Offside, Bristol City. Frank Fielding försöker en genom boll, men Callum O'Dowda fångas offside.
Hörnet, Bristol City. Sammankallad av Rico Henry.
Romaine Sawyers (Brentford) vinner en frispark i anfallshalvan.
Foul av Lee Tomlin (Bristol City).
Daniel Bentley (Brentford) vinner en frispark i den defensiva halvan.
Foul av Matty Taylor (Bristol City).
Försöket räddades. Bailey Wright (Bristol City) huvud från mitten av lådan sparas i toppen av målet.
Hörnet, Bristol City. Sammankallad av Rico Henry.
Försök missade. Aden Flint (Bristol City) huvudet från mitten av lådan är högt och brett till höger. Hjälpt av Bobby Reid efter en viss situation.
Foul av Yoann Barbet (Brentford).
Tammy Abraham (Bristol City) vinner en frispark i anfallshalvan.
Romaine Sawyers (Brentford) vinner en frispark i anfallshalvan.
Foul av Jens Hegeler (Bristol City).
Ersättning, Brentford. Nico Yennaris ersätter Konstantin Kerschbaumer.
Försök missade. Matty Taylor (Bristol City) höger fotade skott från mitten av lådan är nära, men missar till vänster. Hjälpt av Tammy Abraham.
Bobby Reid (Bristol City) träffar rätt inlägg med en höger fotad skott från höger sida av lådan. Hjälpt av Korey Smith med ett kors.
Romaine Sawyers (Brentford) vinner en frispark i defensiva halvan.
Foul av Bobby Reid (Bristol City).
Hörnet, Brentford. Sammankallad av Aden Flint.
Foul av Konstantin Kerschbaumer (Brentford).
Callum O'Dowda (Bristol City) vinner en frispark i anfallshalvan.
Foul av Ryan Woods (Brentford).
Callum O'Dowda (Bristol City) vinner en frispark i defensiva halvan.
Utanför, Brentford. Jota försöker en genom boll, men Florian Jozefzoon fångas offside.
Försök blockerat. Lee Tomlin (Bristol City) höger fotade skott utanför lådan är blockerad.
Foul av Ryan Woods (Brentford).
Callum O'Dowda (Bristol City) vinner en frispark i anfallshalvan.
Försök blockerat. Bobby Reid (Bristol City) höger fotade skott utanför lådan är blockerad. Hjälpt av Callum O'Dowda.
Försöket räddades. Josh Clarke (Brentford) vänster fotade skott från höger sida av lådan sparas i mitten av målet. Hjälpt av Jota.
Substitution, Bristol City. Jens Hegeler ersätter Gary O'Neil på grund av en skada.
Försening över. De är redo att fortsätta.
Försening i match Gary O'Neil (Bristol City) på grund av en skada.
Foul av Rico Henry (Brentford).
Korey Smith (Bristol City) vinner en frispark i defensiva halvan.
Foul av Lasse Vibe (Brentford).
Lee Tomlin (Bristol City) vinner en frispark i defensiva halvan.
Utanför, Brentford. Josh Clarke försöker en genom boll, men Florian Jozefzoon fångas offside.
Ersättning, Brentford. Josh Clarke ersätter Maxime Colin.
Mål från Sergi Canos och Lasse Vibe hjälpte Brentford avsluta Bristol Citys fyra-spel unbeaten strimma.