Adam Forshaw gave the visitors a 16th-minute lead from the penalty spot before being pegged back by Jack Payne’s equaliser just after the half-hour mark.
Sam Saunders soon restored the lead for Brentford and they finally wrapped up the victory in the 90th minute as Clayton Donaldson struck, extending their unbeaten run in the league to 12 matches.
Wolves slipped to three points behind the leaders as they drew 1-1 at Tranmere Rovers.
A red card in the 20th minute for Richard Stearman puts Wolves' position in jeopardy early on and Tranmere capitalised through Ryan Lowe.
Tranmere's numerical advantage did not last into the second half, however, as James Wallace received his marching orders just before the break and David Edwards scored Wolves' equaliser in the 55th minute.
Leyton Orient slipped out of the top two as their encounter with strugglers Bristol City was postponed, while Swindon Town’s home match against Crawley Town and Gillingham’s trip to Stevenage also did not go ahead.
Preston North End stayed in touch with the leading pack thanks to a 3-2 triumph over visitors Port Vale, but they almost made a mess of their afternoon after seeing their three-goal lead cut down.
Despite a humbling 3-1 defeat at home to Coventry City, Rotherham United keep hold of the final play-off place, but Walsall have closed to within one point of them after coming from behind to beat Sheffield United 2-1.
A 2-1 victory at Oldham Athletic saw Shrewsbury Town move two points above the relegation zone, while Crewe moved up to 21st place thanks to beating Carlisle United 2-1 at the Alexandra Stadium.
Notts County recorded only their sixth league win of the season and moved off the bottom of the table after they comfortably defeated Bradford City 3-0, while MK Dons and Colchester United played out a mid-table 0-0 stalemate.
Thank you for reading 5 articles this month* Join now for unlimited access
Enjoy your first month for just £1 / $1 / €1
*Read 5 free articles per month without a subscription
Join now for unlimited access
Try first month for just £1 / $1 / €1