England looked poised for victory when Heskey scored 10 minutes before the break. Peter Taylor's men had gone 343 goalless minutes since Darren Eadie scored against Italy at Ashton Gate, but drought ended when the Portsmouth striker Lee Bradbury, making his debut, prodded the ball to Heskey.
His first touch was poor, but his pace and power hounded defender Bartosz Bosacki into a back-pass that stuck in the sodden surface. Heskey then showed composure to stay on his feet, even though goalkeeper Jakub Wierzchowski tried to bring him down, and scored from just inside the box.
With goalkeeper Richard Wright virtually untroubled, it appeared that Taylor's side would hang on to move three points clear of the Italians at the top of European Championship group two. But in the 66th minute Liverpool's Jamie Carragher could not keep his feet after blocking a low centre from Tomasz Moskal and the Polish substitute, Daniel Dubicki, shot past the stranded Wright from six yards.
It was a blow after six previous games without conceding a goal, but England could hardly complain after failing to press home their advantage.
Taylor's injury travails this season had continued in the build-up to this game, and the four new-boys, Bradbury, Des Hamilton, Adrian Moses and Nigel Quashie took the coach's total of players used to 44 in seven games. Not surprisingly, and hardly helped by the pre-game downpour that turned the pitch into a partial swamp, it took a while for them to find their feet, although Bradbury did go close from a Paul Murray cross.
The Poles then took the initiative, Moses making one excellent tackle after striker Slawomir Paluch had burst clear, but Richard Wright was well protected by the back line. When he had work to do, he was assured, and Heskey's goal gave England a platform from which they could dominate.
They failed to do that as the Poles stepped up a gear after the break and it needed a splendid Wright save eight minutes from time to foil Moskal's 25-yarder.
Poland U21: Wierzchowski; Bosacki, Szymkowiak, Michal Zewlakow, Nowak, Terlecki (Marcin Zewlakow, 88), Kukielka, Moskal, Skwara (Tarachulski, 57), Paluch, Wichniarek (Dubicki 45). Substitutes not used: Liberda, Zawadzki.
England U21: Wright; Hamilton, Granville, Moses, Carragher, Hall, Murray, Quashie, Heskey (Huckerby, 67), Bradbury, Hughes. Substitutes not used: Mills, Marshall, Serrant, Scowcroft.
Referee: J Brito Arseo (Spain).Reuse content