Battling Vale swept into a two-goal lead after 18 minutes and dominated the second-half.
Lone striker Richards put Vale ahead after a lovely ball across the six-yard box by Whitaker.
Richards pounced for his fourth goal in three games when Whitaker again set him up.
Brighton reduced the deficit through Dean Cox (26), who shot home after running on to a backheel by Glenn Murray.
Whitaker, thrice denied by the woodwork, sealed the points two minutes from time with a dipping, 30-yard left-foot shot which flew in to the top corner.
Murray gave Brighton hope by heading in a cross from Cox in the last minute and was later denied another goal when another headed effort was ruled out for offside.