Media playback is not supported on this device
Germany stormed into a 2-0 lead but Mark Gleghorne pulled one back for England before half-time.
Phil Roper then equalised with a deft finish before Adam Dixon put England ahead from a penalty corner.
Germany replied with goals from Lukas Windfeder and Anton Boekel, which means England must beat Ireland in their final pool match to make the semis.
Ireland, who beat Poland 7-1 earlier on Monday, are level on four points with Germany at the top of the pool.
They need a point to progress to the semi-finals when they face England on Wednesday.
England: George Pinner (GK,C), David Ames, Liam Sanford, Henry Weir, Harry Martin, Mark Gleghorne, Phil Roper, Adam Dixon, Brendan Creed, David Goodfield, David Condon,
Subs (Used): Ollie Willars, Ian Sloan, Michael Hoare, Sam Ward, Barry Middleton, Chris Griffiths
England lost 4-3 to Germany in a thrilling Pool B encounter at the EuroHockey Championships in Amsterdam.