The Three Lions were without Harry Maguire as Tyrone Mings with Kieran Trippier and Kyle Walker as the fullbacks, while Croatia included captain Luka Modric.
England threatened to take the lead from five minutes after a quick breakaway from Raheem Sterling coincided with Phil Foden, who found the base of the post with a curling left-footed shot.
Another crack at the Croats came within minutes through a half-volley on the edge of the area by Kalvin Phillips from a corner-kick, but goalkeeper Dominik Livakovic parried.
Gareth Southgate's boys started to drop back following the earlier momentum and as such had the Croats going close before the half-hour mark with a first-time strike in the area by Ivan Perisic.
Croatia had to however revert back to thorough defending five minutes from the break to successfully thwart a well-taken free-kick outside the area from Trippier.
The 2018 World Cup finalists were finally breached 12 minutes after halftime when Sterling pierced through the centre of the defence to send a pass from Phillips underneath the gloves of Livakovic.
Captain Harry Kane could've given the Three Lions a second inside four minutes with a back-post attempt, but failed to find the intended target following defensive pressure.
Ante Rebic aimed to bring the visitors level midway in the second half from a snap shot in the area following a loose ball, but he went wide.
England made a substitution after 70 minutes with Marcus Rashford in for Foden, while Croatia put on a double change in Josip Brekalo and Nikola Vlasic.
The Three Lions continued to push for a second towards full-time, but opted to start their Euro 2020 campaign with a 1-0 win.