Martin Jol's side took the lead on 35 minutes when Johnson cut inside from the left before he fired low under keeper Stefan Wessels.
The home side pushed hard to find en equaliser in the second half, with Peter Utaka squandering two good opportunities to level.
Johnson wrapped the game up in the dying minutes when he calmly curled the ball in from the edge of the area.
Odense finished the game with ten men when Kalilou Traore picked up his second yellow card for a dangerous tackle on Damian Duff. The midfielder was lucky to still be on the pitch at that point, having earlier lunged in two-footed on Matthew Briggs.