An 87th-minute header from Gerard Pique spared Spain’s blushes as they edged out a dogged Czech Republic 1-0 in their Group D opener.
Spain, 2008 and 2012 European champions, were utterly dominant but looked like drawing a blank until Pique struck in Toulouse.
Roman Hubnik almost scored an own goal while Alvaro Morata and Jordi Alba were denied by Petr Cech at the Stadium Municipal.
Spain spent most of the game camped inside the Czech half and are now level with Croatia after their 1-0 win over Turkey on Sunday.
Manchester United goalkeeper David de Gea, who defended himself against allegations in the Spanish press about his private life on Friday, started while David Silva earned his 100th cap.
Tomas Rosicky, a free agent this summer, also started for the Czechs having played just 19 minutes of football for Arsenal last season.
The Czech Republic had never beaten Spain but made a positive start, although their final ball and Vladimir Darida’s weak free-kick stopped them from seriously threatening.
Spain quickly took control but struggled to make a breakthrough as the Czechs flooded the defence and midfield to stifle the holders.
They had to wait until the 16th minute to carve apart their rigid opponents when Morata almost put Spain ahead.
Silva wriggled free on the right to deliver a drilled low cross which Morata met first time from seven yards, only for Cech to produce an instinctive save.
With Spain dominant, Pavel Vrba’s Czech side showed little ambition and Cech denied Morata again after 29 minutes, turning the Juventus striker’s low effort wide.
The Czech Republic failed to keep a clean sheet in 10 qualifying games and Spain continued to press as Sergio Busquets fired wildly over.
Dangerman Morata easily found space while Cesc Fabregas’ runs from deep caused problems with the Chelsea midfielder freed from any defensive responsibilities.
Full-backs Alba and Juanfran piled forward and, six minutes before half-time, Cech beat away Alba’s angled drive before he rushed out to smother at Silva’s feet as Spain turned up the heat.
In a one-sided first half Tomas Necid’s tame effort just before the break was held by De Gea but the Czechs offered little threat despite their defensive resistance.
It seemed only a matter of time before Spain went ahead and Hubnik nearly scored a calamitous own goal within a minute of the re-start when he turned Morata’s cross onto his own post.
A minute later the defender blocked from Nolito and Sergio Ramos.
Vicente del Bosque’s side had not lost at the European Championships since June 2004 and there was little suggestion the Czechs would break that run until De Gea was forced into action when Hubnik reacted to Ladislav Krejci’s 57th-minute free-kick.
With frustration building Aritz Aduriz, who scored 36 goals in 55 games for Athletic Bilbao last season, replaced Morata.
But Spain survived a scare after 65 minutes when Fabregas saved an almost certain opener when he acrobatically hooked Theodor Gebre Selassie’s goalbound header away.
The chances for Spain continued to flow, though, and Alba should have done better when he was found by Silva, only to have the ball whipped off his toes by Hubnik with just Cech to beat.
Aduriz’s acrobatic effort dropped wide as Spain began to run out of time and David Limbersky produced a wonderful late tackle just as Thiago was about to pull the trigger with 10 minutes left.
But Pique finally broke the deadlock and bagged a deserved win for Spain after 87 minutes when he pounced on Andres Iniesta’s cross to nod past Cech from four yards.
Darida could still have snatched a draw for the Czech Republic but his injury-time volley flew straight at De Gea.