Kieran Trippier's first-half goal was not enough to secure England's route to the final as Gareth Southgate's side were beaten in extra-time.
At the Luzhniki Stadium, Russia, England stepped out with a nation behind them, and they got off to a dream start.
Dele Alli was fouled on the edge of the Croatia box in the fifth minute, and Trippier stepped up to strike a beauty of a free-kick into the top corner.
Southgate's starting 11, which included players to have featured for a total of 18 EFL sides, continued to create chances in the first half but they could not convert.
They were made to pay, too. A different Croatia came out after the break, and their equaliser finally came. Ivan Perisic struck just after the hour mark and the tie looked destined for extra-time.
Extra-time is where it went, and where it was won. Mario Mandzukic netted a 109th-minute winner to break English hearts, but it did not break their pride.
England are out of the World Cup, but they return home to a united nation who have fallen back in love with their football team.