The defender is the latest player to have departed Villarreal following their relegation last season, and will now spend the upcoming campaign at San Siro
The former Udinese defender completed a medical in Milan on Tuesday and will put pen to paper on a one-year loan arrangement, with the option to make the deal permanent come the end of the 2012-13 campaign.
Sky Sport Italia have also confirmed that Zapata will occupy the Rossoneri's last remaining non-EU spot in the team, meaning the likes of Edin Dzeko or Carlos Tevez will not be able to pitch up at San Siro this summer.
Milan have been on the hunt to find someone capable of replacing Thiago Silva, who departed the club earlier in the summer to sign for Paris Saint-Germain.
Links to Montpellier's Mapou Yanga-Mbiwa and Cagliari's Davide Astori have turned cold, prompting Milan CEO Adriano Galliani to turn his attention to Zapata, who is comfortable both in the centre or on the flanks.
The Colombia international made 28 appearances in La Liga last season, but was ultimately unable to keep Villarreal afloat.
He joins former team-mates Borja Valero and Gonzalo Rodriguez in making the switch to Serie A.