Northern Ireland took the lead thanks to Gerry Taggart's stunning half- volley, but Germany were level two minutes later after Andreas Moller punished a failure in defence.
Northern Ireland had a great chance to go in front on six minutes, when Michael Hughes' free-kick from the left carried beyond captain Iain Dowie and Barry Hunter sneaked in at the back post, only to head over.
Irish keeper Tommy Wright, back after a two-year absence through persistent injury, was given a taste of the action when Thomas Hassler found room to drill in a 25-yarder that was saved with some comfort. Wright also produced a marvellous save with his heel after Marcus Babbel had met Hassler's corner with a towering header.
It was Germany versus Wright at this stage and it was all credit to Ireland's hardworking side that Germany were struggling to break down the massed ranks of green shirts.
Horlock, at left-back, became the first man to be booked when his challenge on Moller stopped the midfielder's progress. Hughes followed three minutes later when the referee ruled he had dallied over taking a free-kick. But when the West Ham midfielder did take the kick, the Irish took the lead in sensational fashion. Hughes' deep cross was retrieved by Steve Lomas and the Manchester City midfielder's cross was not cleared cleanly by Babbel, and Taggart struck a stunning half-volley from 16 yards which arrowed past Andreas Kopke's right hand.
Germany were level two minutes later when the Irish defence failed to clear and Moller swept a shot high past Wright's left hand from 20 yards. Fredi Bobic almost put Germany ahead just before the break when his header from Hassler's corner drifted wide.
Germany kept up the pressure early in the early stages of the second period. The Irish had a remarkable escape when Moller's cross from the right was met by a wonderful glancing header from Jurgen Klinsmann, but the ball first struck the inside of Wright's right-hand post and then his left-hand post before bouncing into the grateful arms of the Irish keeper. Germany were becoming increasingly desperate, especially when Klinsmann saw his shot deflected wide as the Irish again defended in depth.
"We defended well and we broke well," said Hamilton after the match. "We were a bit fortunate on occasions and had our share of luck, but we deserved a draw."
Germany: Kopke (Marseilles); Reuter (Borussia Dortmund), Tarnat (Karlsruhe), Kohler (Bor Dortmund), Eilts (Werder Bremen), Babbel (Bayern Munich), Moller (Bor Dortmund), Strunz, Klinsmann (both Bayern Munich), Hassler (Karlsruhe), Bobic (VfB Stuttgart). Subs: Bierhoff (Udinese) for Bobic, 70; Passlack (Borussia Monchengladbach) for Eilts, 61.
Northern Ireland: Wright (Reading); Nolan (Sheff Wed), Hunter (Reading), Hill (Leicester), Taggart (Bolton), Lomas (Man City), Morrow (Arsenal), Horlock (Swindon), Hughes (West Ham), Lennon (Leicester), Dowie (West Ham). Subs: Rogan (Millwall) for Lennon, 85; Gray (Nancy) for Dowie, 75.
Referee: Ahmet Cakar (Turkey).