Wayne Rooney headed the only goal early in the second half after an error by Andriy Pyatov, but there was huge controversy when John Terry cleared a Marko Devic shot that had crossed the line.
None of the officials, including the additional assistant referee standing just metres from the ball, appeared to see the incident, and an incensed Ukraine side exited the tournament.
England may feel it is payback for the 2010 World Cup, when a Frank Lampard goal against Germany was ruled out, but this latest embarrassment will surely accelerate the introduction of goalline technology.
The result sets up a last-eight encounter against Group C runners-up Italy, while France will face defending champions Spain after losing 2-0 to Sweden.
However, there should be no ignoring a sub-standard England display. Roy Hodgson's men began the match full of optimism, buoyed by a 3-2 win against Sweden, and welcoming the apparently talismanic Rooney back to the fold.
Superb as Rooney may be for Manchester United, he has not made a positive major tournament contribution for England since 2004 - so expectations that he would transform England into free-flowing world-beaters always seemed a touch optimistic.
So it proved, as they produced a first half as stilted and insipid as anything they produced in their disastrous 2010 World Cup campaign.
Despite missing Andriy Shevchenko and Andriy Voronin from the starting XI, Ukraine dominated, showing England up with their movement and ball retention.
Early on, England's centre-backs went walkabout, allowing the excellent Andriy Yarmolenko space inside the box - but the Ukrainian dallied on the ball and his eventual shot was charged down.
Scott Parker then produced a block to deny Devic, who was first to an Artem Milevskiy lay-off.
Next it was John Terry's job to get in the way of a shot as he stopped a Yevhen Konoplyanka, and Anatoliy Tymoshchuk volleyed the follow-up over the bar.
Despite their seemingly chronic inability to locate a team-mate with a simple pass, England did have their moments, with Rooney guilty of a glaring miss.
Terry found Ashley Young on the left, whose inswinging cross found an unmarked Rooney at the back post, but somehow the striker glanced his header wide.
Back came Ukraine with Yarmolenko testing Joe Hart with a low shot that the goalkeeper did well to hold. And Yarmolenko threatened again with a mazy dribble inside the box that left three defenders in his wake, but led away from goal and he was eventually crowded out.
England cannot play like Spain, nor should they try, but their passing statistics were simply embarrassing. Xavi routinely averages 50 passes per half. In the first half, Danny Welbeck completed five, James Milner seven, Young nine and Glen Johnson 10.
Even when they did hold the ball, they showed no likelihood of going anywhere - a succession of square passes brought a few ironic 'Ole's from the crowd, but the absolute lack of movement off the ball meant Ukraine were perfectly safe.
The goal came early in the second half from a right-sided cross by Steven Gerrard. As the ball came through, a defender got a slight touch and Pyatov missed the ball completely, gifting Rooney the simplest header.
Just after the hour mark, Ukraine equalised. Or at least they thought they had. Artem Milevskiy teed up Devic, whose shot was half-saved by Hart.
Terry ran back to clear, but the ball had already crossed the line - however, referee Viktor Kassai waved play on and received help from his assistants.
Lucky as England were, they may point out that Milevskiy was offside in the build-up.
As news came through that France were losing to Sweden, the pressure eased - England could have conceded an equaliser and still topped the group.
However, there was still a hairy moment as Hart parried a swerving Konoplyanka shot and Joleon Lescott showed good awareness to hook the ball away.
It was deeply unpretty stuff, but somehow Hodgson's men continue to deliver. They may need more luck if they are to see off the Italians.