An extra-time goal from Mario Mandzukic sent Croatia to the World Cup final at England's expense.
Full-back Kieran Tripper put England ahead early on but Ivan Perisic equaliser in the second-half to ensure there would be an extra 30 minutes of play.
Mandzukic reacted quickest in the box with 12 minutes left on the clock and fired beyond Jordan Pickford.
It took less than five minutes for England to take the lead when Trippier stepped up to send a 20-yard free-kick up and over the wall, after Dele Alli was fouled just outside the area.
England looked the more confident of the two teams, growing in confidence from their early opening goal.
Trippier almost turned provider nine minutes later when his corner kick landed on Harry Maguire’s forehead but the defender angled his effort just wide of the goal.
It wasn’t until the 19th minute that Croatia tried their luck but Ivan Perisic’s low drive flew wide of Jordan Pickford’s goal.
At the other end Croatia goalkeeper Danijel Subasic did not look fit and seemed uncomfortable when forced to kick the ball. He was a doubt to play after suffering a hamstring injury against Russia in the last round but was deemed able to play.
Captain Harry Kane should have doubled the lead just before the half-hour mark when he was played through on goal but his shot from 10 yards was repelled by Subasic and he was unable to convert the rebound.
Jesse Lingard was the next man to have a chance when Alli found him on the edge of the box but the midfielder tried to slot the ball into the corner but he struck his shot wide.
Croatia were improved after the break and looked the more likely to grab a goal. Perisic had the clearest chance in the 65th minute when John Stones could only head a cross as far as the Inter Milan midfielder on the edge of the box but his fiercely struck shot was blocked by Kyle Walker’s torso, leaving the defender winded.
Perisic would not be denied minutes later when he met a deep cross from the right and steered a volley beyond Pickford from eight yards.
He almost then completely turned the game around when he made the most of a defensive mix-up to fire a shot from the left which struck the base of post and Ante Rebic could only tamely strike it at Pickford.
Mario Mandzukic was quiet for the majority but had the chance to score a potential winner in the 83rd minute when he latched onto a chip over the top but he volleyed straight at the goalkeeper.
Pickford almost gifted a goal when he failed to come and claim a cross but Perisic failed to take advantage as he lobbed the ball over the bar.
England were once again dangerous from set-pieces and almost took the lead in extra-time when Stone met a Trippier corner but Sime Vrsaljko retreated quickly to clear the ball off his own line.
Just before the extra-time interval Perisic sent in an inch-perfect cross for Mandzukic but Pickford reacted superbly to deflect the close range shot wide.
Mandzukic got his own back after the break when he beat Stones to a flicked header and slammed the ball beyond Pickford from eight yards.
England failed to trouble the opposition goal in the closing stages as they bowed out of the World Cup.
An emotional Southgate thought England should have scored again in the first-half, something they will be left to rue.
"Tonight in the end we weren't quite there but the team will be stronger for that.
"There weren't clear changes where we felt we could improve the situation. I felt there was a period of 20 minutes in the second half when we stopped playing and lost that composure.
"The next two days there will be a lot more positives but tonight is so hard to take...we're so close to what was almost unimaginable at the start.
"You don't get that reaction (of the supporters in Moscow after the game) if you haven't played as well as you have. We've left everything out there. We will look at the goals and chances but I don't think over the six or seven weeks together we could have given more than we have."
England captain Kane told ITV after the match: "It's tough, we're gutted, we worked so hard, the fans were amazing, it was a tough game it was a 50:50 game, I am sure we will look back and there's stuff we could have done better. it hurts, it hurts a lot but we can hold our heads up high. We got further than anyone thought we would have.
"Until they scored we were under the cosh and when they scored we picked by up again.
"It has been great to get to this stage, we've done everyone proud, but we've fallen a bit short. It hurts."
Croatia will face France in the final on Sunday, after they got the better of Belgium on Tuesday night thanks to a Samuel Umtiti goal.