Mario Goetze had given Germany the lead before goals from Andre Ayew and Asamoah Gyan turned the game on its head and threatened to cause a major upset for the Black Stars.
But Klose had the last laugh with a poacher’s goal a yard out 19 minutes from time.
Having at times bossed the first half, and only been denied by two fantastic Manuel Neuer saves from Sulley Muntari and Christian Atsu, Ghana switched off at the start of the second.
Thomas Mueller picked out Goetze running into the box and the Bayern Munich midfielder stopped unconvincingly to head goalwards with the ball going straight down onto his knee before rebounding past Ghana goalkeeper Abdul-Fatawu Dauda, who like his two centre-backs had been ball-watching.
The lead lasted only three minutes before Harrison Afful crossed into the box and Ayew, on his 50th appearance for the Black Stars, climbed above Shkodran Mustafi and the static Per Mertesacker, playing his 100th game for Germany, to flick a header beyond Neuer.
Nine minutes later things got even better for Ghana as Muntari dispossessed Germany captain Philipp Lahm in midfield and slid the ball through to Black Stars captain Gyan to smash the ball past Neuer.
Ghana were running riot and Germany hanging on by their fingernails but an inspired substitution by coach Joachim Loew brought Klose into the fray to stab home from a yard out after Benedikt Hoewedes flicked on Toni Kroos’s corner.