Victories for Middlesbrough and Sheffield United earlier in the day had seen Villa drop down to eighth prior to kickoff, but they could not respond in kind as Brentford recorded back-to-back wins for the first time since November.
Brentford remain 12th in the table despite the win, though, whereas Villa are left three points adrift of the top six following only their sixth defeat of the season.
Villa were hit by an early blow when Albert Adomah was forced off through injury moments later, although his replacement Onomah would go on to score the visitors' only goal of the night.
It was the home side who were first on the scoresheet, though, with Sawyers drilling a low strike into the bottom corner from just outside the area after Villa had failed to clear their lines.
The lead lasted just eight minutes as Villa responded quickly when Onomah rose highest inside the area to plant a firm header into the top corner from Brentford old boy Scott Hogan's cross.
Hogan thought he finally had his first league goal of the season six minutes before half time when he ran onto Jack Grealish's through-ball and slotted home, but the linesman's flag cut his celebrations short.
The two sides went into the break all square, but Brentford almost restored their lead within two minutes of the restart when Canos's shot deflected off James Chester, who recovered in time to prevent the Spaniard from tucking the rebound home from a tight angle.
The visitors were left bemoaning another defensive mix-up when Brentford scored what proved to be the winner in the 52nd minute as Vibe tucked home from close range after Villa had failed to deal with a corner into the box.
Brentford were inches away from adding a third shortly before the hour mark when Canos threatened once again, this time clipping the crossbar with a deflected effort from just outside the area.
The hosts continued to look the most likely to add to the scoring, with Vibe coming close twice in quick succession as he looked to double both Brentford's lead and his own personal tally.
Villa could have levelled things up with a little over 10 minutes remaining, though, but Keinan Davis could not steer his header on target from inside the box.
The officials indicated a minimum of six minutes stoppage time at Griffin Park, which sparked the beginning of an Aston Villa onslaught as they searched for a dramatic late equaliser.
Bentley was equal to all of Villa's efforts, though, denying Davis from nine yards before just about preventing the ball from creeping over the line from the resulting corner as the hosts held on for all three points.
Brentford (4-2-3-1): Bentley; Yannaris, Mepham, Bjelland, Barbet; Woods, McEachran (Mokotjo, 69'), Jozefzoon, Sawyers, Canos; Vibe (Maupay, 82')
Aston Villa (4-4-1-1): Johnstone; Hutton, Elphick (Elmohamady, 85'), Chester, Taylor; Snodgrass, Whelan (Davis, 67'), Jedinak, Adomah (Onomah, 18'), Grealish; Hogan