England were pegged back to a 3-3 draw by Croatia while France's stalemate with Romania ensured Under-21 European Championship hosts Italy were dumped out.
Jonjoe Kenny's terrific strike looked set to be enough to settle a frantic encounter in a Group C dead rubber on Monday, but Josip Brekalo snatched a late equaliser to ensure England ended their campaign winless.
Having not appeared in the opening two matches for Aidy Boothroyd's men, Reiss Nelson was handed a chance to impress in San Marino, and repaid his manager's faith when he won and converted an early penalty.
Wolfsburg forward Brekalo curled in a superb strike to restore parity, but sloppy Croatia defending enabled James Maddison to drill England back ahead after the restart.
Lloyd Kelly's mistake gifted Croatia a second equaliser in the 62nd minute – Nikola Vlasic finishing in style from the edge of the area.
Partly at fault for Brekalo's first goal, Kenny – who kept his place despite conceding a penalty in the 4-2 defeat to Romania and Aaron Wan-Bissaka's return to fitness – atoned for his earlier mistake with a stunning long-range strike eight minutes later.
England could not hold out to claim maximum points, however, with Brekalo keeping his cool to slot through Dean Henderson's legs and secure a share of the spoils.
The points were also shared in Group C's other fixture, as France and Romania played out a 0-0 draw to secure their places in the semi-finals.
Both sides knew a draw would be enough to send them through to the last four, though neither team let up in their search of a winner, with Adrian Rus squandering a great chance to earn Romania a third successive win in the closing stages.
Had Rus directed his header on target, France would have been out, but Sylvain Ripoll's side held firm to seal a point which sees them through as the best second-placed side.
France's progression comes at Italy's expense and they will now meet Spain in the semi-finals, while Romania will face defending champions Germany.