 Zapata signed for Villarreal CF on 12 July 2011.On Wednesday 17 August 2011, in the 2011–12 season, Cristián Zapata made his debut against Udinese in a Champions League qualifier.In August 2012, Villarreal announced that Zapata has left the club to join Milan on a season-long loan.