A repeat of the 2018 World Cup semi-final seemed set to end in heartbreak for England again when they fell behind to Andrej Kramaric's deflected strike in the 57th minute at Wembley.
However, substitute Jesse Lingard poked home a close-range equaliser with 12 minutes remaining, setting up a frantic finish as qualification was suddenly up for grabs again.
Captain Kane completed the turnaround, the striker overcoming a mixed performance in front of goal by poking home Ben Chilwell's cross from England's left flank.
Like his team, the striker had appeared set to endure a frustrating outing until his telling contribution; he had scuffed over the top from a corner as well as seeing Tin Jedvaj and goalkeeper Lovre Kaliinic block on-target attempts in a first half the hosts dominated.
Raheem Sterling twice wasted one-on-one opportunities too, and the misses appeared set to be costly when Croatia struck on the counter.
Kramaric appeared to have wasted the shooting opportunity when he continuously dummied onto the opposite foot, only to eventually pull the trigger with a right-footed effort that found the net via a crucial touch off Eric Dier.
However, England took the direct route to finding an equaliser, Joe Gomez's long throw flicked on by John Stones and while Kane's stabbed attempt was partially blocked, Lingard was in the right place to provide the finishing touch from under a yard.
The Manchester United winger popped up on his own goal line to make a crucial intervention in defence, hacking clear Domagoj Vida's header from a corner, before Kane struck, his finish on the stretch relegating Croatia from the top tier and gaining a modicum of revenge for the 2-1 loss in Moscow in July.
What does it mean? National pride comes through
The Nations League may not be loved by all just yet, but the possible outcomes in League A Group 4 of UEFA's competition made for a far greater spectacle than any high-profile friendly.
Croatia were jaded after their efforts in a 3-2 home win over Spain on Thursday yet fought valiantly throughout, while the must-win nature of the fixture inspired England to produce a memorable fightback in front of their fans. It may not be a major trophy, but it clearly matted to Gareth Southgate and his players.
O Captain! My Captain!
Kane had not scored in 747 minutes of international football before his stabbed finish sent England through to the last four. He was not alone in looking out of sorts, Sterling's finishing will once again come under the spotlight, but showed perseverance pays off by popping up at the end to score with his fifth shot of the match.
Sterling lacked value in front of goal
A key cog under Pep Guardiola at Manchester City, Sterling's England career has failed to run smoothly, albeit not always due to his on-field performances. A brace in the 3-2 win over Spain last month ended a three-year international goal drought, but the forward misfired when it mattered against Croatia. Would he have tucked those opportunities away at club level?
Key Opta Facts:
- England have won four of their last five matches (D1) after winning just one of their six before that (D1 L4).
- This was Croatia's first defeat against England since September 2009, when they lost 5-1 in a World Cup qualifier at Wembley.
- Kramaric scored with Croatia’s first shot on target of the match.
- Lingard has scored as many goals in his last two England matches (2) as he managed in his first 20 caps for the Three Lions.
- England have won 15 of their last 16 competitive matches at Wembley (L1).
Sunday's game was the end of not just the fixtures in Group 4 but also the action for both Croatia and England in 2018. The next international break in Europe is scheduled for March. England's appearance in the Nations League Finals, meanwhile, will take place in June of next year.