In front of 70,389 spectators, England took the lead in the 12th minute when Harry Kane converted a penalty. Martin Baturina equalised in the 36th minute, but Kane restored England's advantage six minutes later.
Petar Musa made it 2-2 in the fifth minute of first-half stoppage time, giving Croatia hope at the break.
However, England regained the lead just two minutes into the second half through Jude Bellingham, while Marcus Rashford sealed the win with England's fourth goal in the 85th minute.
Croatia's next match is against Panama in Toronto on 24 June at 1am Croatian time (23 June, 7pm local time). They will then face Ghana in Philadelphia on 27 June at 11pm Croatian time (5pm local time).