Gerard Moreno's penalty in the first leg gave the LaLiga side a slender advantage and the in-form striker was on target again on Friday (AEST), taking his tally for the season in all competitions to 25.
Paco Alcacer scored the opener as Villarreal made it eight successive wins in the competition - it will host the Gunners in the first leg on 30 April, with the return fixture a week later.
Zagreb had stunned Tottenham with a second-leg comeback in the previous round and while Mislav Orsic did pull a goal back, the Croatian champions saw their involvement in the tournament come to an end.
Villarreal had already seen Samuel Chukwueze clatter a left-footed volley against the post before eventually opening the scoring in the 36th minute.
Alcacer rewarded the home team's dominance with a tap-in finish, though the goal was only awarded after the involvement of the video assistant referee as Chukwueze - who squared the ball for his team-mate to score - had initially been ruled offside.
Moreno added a second prior to the half-time interval, quickly reacting to a sharp save by Dinamo goalkeeper Dominik Livakovic to impressively convert the rebound on the turn.
Orsic - Dinamo's hat-trick hero against Spurs - had twice gone close before eventually beating Geronimo Rulli, slotting home on the angle after exchanging passes with Bruno Petkovic.
However, it was Villarreal went the closest to scoring again, Chukwueze striking the woodwork for a second time before Livakovic denied him a goal his performance deserved with a superb save.