This was a key match in Group D, as the winners would advance to the knockout stage on top of the pool, with the expectation of a more favourable draw in the Last 16. The Spaniards came in on the back of two wins, while the Blazers had a win and a disappointing draw in their last outing to the Czech Republic, who fought back from 2-0 down, but this time it would be the Croats playing catch up.
That's because Spain open the scoring just seven minutes in, when David Silva drives inside before feeding Cesc Fabregas who squares to Alvaro Morata, and he scores his third of the tournament to equal top scorer Gareth Bale.
But Croatia strike back when Fiorentina forward Nikola Kalinic equalizes at 1-1 in the 45th minute with a flicked volley.
In the 72nd minute, Spanish defender and captain Sergio Ramos would squander a chance to go ahead, when he misses a penalty kick.
Late goals have been a theme of this tournament, and it continues when Marko Pjaca finds Ivan Perisic whose low shot, aided by the merest deflection, evades David De Gea, and the Croatians would earn a 2-1 victory to claim first place in the group.
So Croatia finish on top of Group D with seven points, followed by Spain with six. Turkey are third with three, while the Czech Republic sit at the bottom. Defending champions Spain will meet Group E winners Italy in the Last 16 on Monday in Paris, while Croatia will play one of the third-placed teams in Lens on Saturday.