Brentford moved up to 10th place in the Premier League table with a hard-fought win.
Following a frustrating, scoreless first half against a determined Luton Town, Thomas Frank’s side looked in control once Neal Maupay put them in front, before Ben Mee added a second.
Nevertheless, Hatters substitute Jacob Brown temporarily reduced the deficit before Shandon Baptiste made the points safe with nine minutes to go.
On a freezing day in west London, there was precious little of note throughout the first half in which the Bees dominated possession but failed to create any genuine openings, finding Luton defensively well-organised.
In fact, it took 36 minutes for the first notable goal attempt, when Bryan Mbeumo curled a long range shot wide of the post, before Yoane Wissa tested Hatters keeper Thomas Kaminski.
The Bees made the breakthrough in the 49th minute.
With Wissa having time to put in a dangerous cross from the left, Luton midfielder Amari’i Bell miscued his clearance into the path of Maupay, who fired home from close range.
And the hosts doubled their lead in fortuitous fashion seven minutes later.
Defender Mee moved into the penalty area before rising to head home Mbeumo’s corner via a deflection by Carlton Morris.
Against the run of play, Luton gave Brentford a scare on 76 minutes.
Brown took advantage of hesitancy by Vitaly Janelt just outside the penalty area to drill the ball low past keeper Mark Flekken.
Brentford restored the two-goal advantage with a messy third goal to seal victory.
After great work in the danger zone, substitute Baptiste pounced to net the rebound when Kaminski failed to hold Janelt’s shot.
Brentford: Flekken, Pinnock, Mee, Ghoddos (Roerslev 77), Norgaard, Onyeka, Janelt, Wissa, Maupay (Peart-Harris 90), Mbeumo (Lewis-Potter 77 ), Yarmoliuk (Baptiste 69)