Celtic were stunned after eight minutes when the Spanish side moved ahead with their first serious attack. Roger's right-foot cross was not defended well and Josico nudged a header past David Marshall after Balde ducked under the Spaniard's merest flick of the ball. Jose Mari had a chance for a second three minutes later when he was left unmarked but his header drifted well wide. Celtic were careless at the back and, after Didier Agathe lost possession, Sonny Anderson fired wide when he should have asked questions of Marshall.
Stilian Petrov should have equalised for Celtic in the 19th minute but sent a six-yard header over the top with only Jose Reina to beat. Petrov brought a superb save from Reina with a fiercely-struck volley after half-an-hour which the goalkeeper did well to turn onto his post. But Celtic had an amazing let-off seven minutes from half-time. Anderson sent Jose Mari clear but the striker's finish was wayward and again Marshall was not asked to make the save.
But the sense of injustice seemed to spark Celtic. The pressure finally paid off in the 64th minute when an Agathe cross eluded Reina and Larsson headed the ball home. Larsson should have had a second shortly afterwards when he only had Reina to beat from eight yards but he shot wildly over the crossbar. Agathe, Stanislav Varga and Chris Sutton all forced late saves from Reina in a frantic finish. In stoppage-time, Reina produced a double save to deny Larsson and Sutton.
Celtic: Marshall, Agathe, Balde, Varga, McNamara, Petrov, Lennon, Pearson (Miller 79), Thompson, Larsson, Sutton
Subs not used: Douglas, Valgaeren, Lambert, Mjallby, Beattie, Smith
Booked: Pearson, Larsson, Thompson
Villarreal: Reina, Javi Venta, Ballesteros, Coloccini, Arruabarrena, Josico (Marti 78), Riquelme, Roger, Battaglia, Jose Mari, Anderson
Subs not used: Lopez Vallejo, Victor, Quique Alvarez, Calleja, Arzo, Verza
Booked: Josico, Roger
Referee: Kyros Vassaras (Greece)