Johnson showed poise and control as he turned in the box and crashed the ball home past goalkeeper Ellery Balcombe who had done his bit in keeping the Saddlers at bay.
The second half onslaught was prompted by the sending off of Crawley's Ludwig Francillette - ironically for impeding Johnson as he bore down on goal.
With a little more calm and poise in front of goal, the fine form of Crawley goalkeeper kept Walsall at bay before Johnson struck in added time.
Walsall went into the game in a fine run of form - but that was almost matched by their opponents from West Sussex.
The Saddlers came into it on the back of three consecutive clean sheets and unbeaten in five, three of those away including the FA Cup triumph at Wycombe.
But Crawley were similarly hoping to make it six league games unbeaten since Lewis Young took over the reins on a temporary basis after Kevin Betsy was sacked in October.
The 33-year-old has made no secret of wanting the job on a permanent basis as bosses at The Broadfield Stadium mull over the situation.
They did lose in the FA Cup at home to Accrington and in the EFL Cup at Burnley, but in the league they were certainly on an upward spiral.
Walsall's Liam Gordon had the first chance for either side on eight minutes when he got on the end of Danny Johnson's cross from the right but saw his shot saved well by Ellery Balcombe.
But Crawley were looking dangerous and took the lead on 11 minutes when Ashley Nadesan got down the left and crossed for Dom Telford to score from close range.
If that stunned Walsall they didn't let it get to them for long.
On 13 minutes, Hayden White in the middle of a group of players in the box got on the end of a Tom Knowles free kick to turn the ball in.
Ten minutes later Isaac Hutchinson saw a volley from a Liam Bennett cross well saved by Balcombe.
Tom Knowles had a productive first half and worked himself a chance on the half hour but put his shot over.
The game potentially turned on 39 minutes when Crawley's Ludwig Francillette was sent off after impeding Danny Johnson who was bearing down on goal.
The second half opened with Jacob Maddox causing all sorts of problems for Walsall and he saw a shot saved early on by the impressive Balcombe, the rebound being narrowly put over by Knowles.
On 52 minutes Liam Bennett should have done better when he cut in from the left but put his shot over as Walsall pressed for the second.
Balcombe was at times keeping Crawley in the game, producing two brilliant saves from Hutchinson and Knowles in the 67th minute
Hutchinson then put a shot just wide and Gordon hit the outside of the post with a shot from just inside the touchline with nine minutes left.
11 GOAL Crawley take the lead through Dom Telford from close range after Ashley Nadesan had crossed from the left,
13 GOAL Walsall equalise through Hayden White's second of the season as he got a touch in a crowded box from a free kick by Tom Knowles and it found its way in
39 SENDING OFF Crawley's Ludwig Francillette sees red when he is adjudged to have brought down Danny Johnson who was clear on goal.
65 SAVE Crawley goalkeeper Balcombe produced two great stops from Hutchinson and Knowles
91 Johnson meets the ball in the box, controls it and turns to crash it home and win the game.
Walsall (4-3-1-2) Evans; White; Gordon; Daniels (c); Monthe; Knowles; Comley; Maddox; Hutchinson; Bennett; Johnson
Subs: Williams (for Bennett 60) Earing (for Comley 70) James-Taylor (for Maddox 87)
Allen (for Gordon 87)
Not used: Kinsella; McEntee; Maher
Crawley (4-3-1-2) Balcombe; Francomb; Lynch; Powell; Nichols; Nadesan; Francillette; Telford; Tsaroulla; Jenks; Hessenthaler.
Subs: Craig (for Telford 40) Tilley (for Jenks 56) Fellows (For Nadesan 88)
Not Used: Robson;