Baptistao slotted home clinically following a good team move after 16 minutes and Samu Castillejo then sent a defence splitting pass for Garcia, who rounded keeper Iago Herrerin and knocked the ball into an empty net.
Williams led the comeback with a 53rd minute strike, after being set up by Benat Etxebarria, and then found Aduriz to score from the centre of the penalty area.
Laporte completed the turnaround by converting a Benat free-kick from a tight angle after 80 minutes.
A poor second half for Villarreal also saw the dismissal of Mario Gaspar with three minutes to go.
Holders Barcelona face city rivals Espanyol later while La Liga leaders Atletico Madrid have a derby against Rayo Vallecano. Real Madrid were disqualified from the cup for fielding an ineligible player against Cadiz in the last round.
(Reporting by Tim Hanlon in Barcelona, editing by Alan Baldwin)
Share
