Nottingham Forest dominated the first half and should have buried the Dons, but they let them off the hook before landing their first victory in 2003.
Marlon Harewood's first goal came as Mathieu Louis-Jean crossed from the right. Harewood's powerful header was touched by Kelvin Davis but the ball squeezed home by the post.
The second goal depended on a delicious deflection. Out on the right Harewood's cross glanced off Peter Hawkins and looped agonisingly over Davis and dropped under the bar.
Wimbledon's efforts were more modest. Captain Neil Shipperley having one effort charged down and the other stopped by Darren Ward.
Nigel Reo-Coker six yards out and just wide of the left post, blasted the ball high over the bar.
The usually agile Patrick Agyemang set up wing-back Jermaine Darlington but the cross in from the left was intercepted by John Thompson. His ball back to the goalkeeper had Ward dropping down smartly to save.
The first half may have been a tragedy for the Dons but the second half was a travesty for Forest. They allowed Wimbledon to pluck two goals back and almost steal the show, but Johnson snatched an injury-time winner.
Forest started the second half with Riccardo Scimeca hitting a free-kick from 30 yards that was saved at the foot of the post.
In the 53rd minute Johnson began a catalogue of missed chances. He failed to get on the end of Scimeca's cross from the right and instead of stretching their lead to three goals within six minutes their lead was cut.
Gareth Ainsworth fought off Harewood's attention and squared the ball back for substitute Wayne Gray to drill home.
Johnson once again squandered a near effort from Harewood's cross and Wimbledon capitalised.
Ainsworth's cross from the right bounced off the post, hit defender Michael Dawson and fell to Damien Francis, who drilled in an equaliser.
Well into injury time Johnson was able to not only score the winner, but atone for his earlier misses. The ball found him in the area and he struck to deflate the Dons.