The Saddlers, hoping to improve their play-off hopes, ended the stronger side against the team who started the day as League One leaders and were denied a penalty when Febian Brandy appeared to be tripped in the box after 57 minutes, but the Bees extended their unbeaten run to 14 games.
Brentford took the lead in the 30th minute with their first real raid. Jake Bidwell broke down the left and crossed for top-scorer Clayton Donaldson to head his 14th goal of the season.
But Walsall were level a minute before half-time when Adam Chambers crossed to the far post where Milan Lalkovic headed back for Craig Westcarr to nod home his 11th of the campaign.
The Saddlers had more of the play in the second half but Marcello Trotta missed a great chance for the visitors in the 59th minute when, unmarked, he fired over from Donaldson’s cross.
Walsall poured forward in the dying minutes going for the winner but Paul Downing headed over and Westcarr skimmed the crossbar with a shot.