On a muddy pitch, only declared fit for play a few hours before the start, the Seagulls were far sharper in the opening exchanges.
They took the lead in the eighth minute when Glenn Murray picked up a throughball from Elliott Bennett before firing a right-foot drive past Clayton Ince.
The Saddlers, who are now without a win in four games, struggled to get going but pulled level in the 26th minute when Marc Richards struck a fierce shot that Michel Kuipers was unable to keep out.
Brighton continued to force the pace, however, and scored what proved to be the winner eight minutes before the break as Tommy Elphick nodded the ball on to the far post and top scorer Nicky Forster cleverly volleyed into the roof of the net for his 14th goal of the season.
Walsall dominated the second half and almost equalised in stoppage-time only for Adam Virgo to make a superb goal-line block to deny Troy Deeney.