Arch-rivals Real Madrid snatched their first victory in three outings when a second-half strike from David Beckham earned them a 1-0 win away to Athletic Bilbao, their first victory at San Mames since 1998.
The remainder of the first-leg games will be played on Wednesday when holders Real Betis meet Celta Vigo and last season's losing finalists Osasuna also travel to Galicia to play Deportivo Coruna.
Villarreal take on regional rivals Valencia and Cadiz host Sevilla in two of the evening's other leading ties.
Unfancied Zamora, who knocked out Primera Liga Real Sociedad en route to the last 16, gave league champions Barcelona a run for their money and took a shock lead when Xaco steered home in the fifth minute.
The midfielder controlled a flick-on with his chest, burst his way between two defenders, checked inside Juliano Belletti and slotted past stand-in keeper Albert Jorquera.
Barca, without attacking trio Samuel Eto'o, Ronaldinho and Lionel Messi as well as influential midfielder Deco, were slow to respond but gradually began to gain control.
Dutch midfielder Giovanni van Bronckhorst levelled eight minutes before the break with a cool finish after a slick one-touch passing move involving Santi Ezquerro and Rafael Marquez.
Nine minutes before time Mexican midfielder Marquez put the Catalans in front when he curled an unstoppable free kick past the wall and into the far corner from 20
The goal put an end to Zamora's brave resistance and winger Ludovic Giuly wrapped up with a third when he turned in at the near post after defender Silvinho had scorched his way down the left flank and squared the ball into the Frenchman's path.
OPEN GAME
Javier Clemente's Bilbao, who are hovering just above the relegation zone in the Primera Liga, were in charge for much of an open and entertaining game at San Mames.
It took fine saves from Real's reserve keeper Diego Lopez to deny the Basque side a first-half lead.
Bilbao also had the better of the opening exchanges in the second half, but Real snatched the lead against the run of play 19 minutes from time when Beckham slid in to meet a fine low pass from Robinho and fire past keeper Daniel Aranzubia into the roof of the net.
Beckham's England colleague Jonathan Woodgate got his first run out in two months after recovering from a hamstring injury when he came on as a substitute for the final 15 minutes.
Real, who were without injured strike duo Ronaldo and Raul, should be able to count on new signing Antonio Cassano for next week's second leg at the Bernabeu.
The Italy striker is set to sign for Real until 2010 after undergoing a medical on Wednesday morning.