Spain finally broke open the Croatia defense after wasting a number of late chances as Cesc Fabregas lobbed a through ball for Andres Iniesta. The Barcelona midfielder controlled the ball before flicking a short pass over to Navas, who put his shot into an empty net in the 88th minute.
"We played to the end and we deserved the win," said Navas, who scored his second career goal for the world champions. Spain dominated possession as expected but failed to create many clear opportunities on a warm night at the Arena Gdansk.
On the other end, Spain goalkeeper Iker Casillas made a pair of clutch saves in the second half. The defending champions, who are trying to win their third straight major title, will next face the second-place team in Group D on Saturday in Donetsk, Ukraine.
Italy also advanced from Group C after beating Ireland 2-0. "We made a great step forward. We qualified. That's what motivates us for the quarterfinal. Our philosophy and style of play are good and we proved it in today's match," Del Bosque said.
"The team played well even though the match didn't go as we planned." Navas' goal came moments after Iniesta and Fabregas failed to convert late opportunities, with the European champions often trying to string together one too many passes.
"We suffered a lot tonight. They are very good," Iniesta said. "We had to be patient. We had to wait for our chance. That's what we did in the end." Croatia could have reached the quarterfinals with a victory.
Casillas, however, made a reflex save on Ivan Rakitic's header in the 59th minute and then punched out substitute Ivan Perisic's low volley in the 79th. Casillas, who recorded his 76th shutout in his 134th appearance, was Spain's steadiest player in defense as the backline was often troubled in the second half by balls into the box.