Maarten Martens opened the scoring in the 63rd minute with Erik Falkenburg putting AZ in the driving seat in the 84th minute.
The home side missed two good chances to make it three late on, but they will still travel to Italy confident of progressing next week.
Kwadwo Asamoah had the first shot of the game after three minutes, but the rest of the first half belonged to the hosts with Rasmus Elm's shot parried by Samir Handanovic minutes later.
Handanovic once again chose the easier option of pushing the ball away to deny Brett Holman in the 19th minute as AZ pushed forward in search of an opener.
They pegged Udinese back inside their own half, but rarely posed a tangible threat to Handanovic's goal.
In fact, the closest either side came to opening the scoring in the first half was when Pablo Armero's deflected shot was tipped over the crossbar and Esteban Alvarado made a good save to deny Danilo from the subsequent corner.
Udinese started the second half better with Giovanni Pasquale volleying wide.
But it was during the Serie A side's best phase of the match that AZ went in front with Jozy Altidore's cross taking a deflection off Pasquale to sit up for Martens to head in at the near post.
Damiano Ferronetti missed an open goal on the stretch at the far post in the 67th minute as Udinese were forced to attack more.
This left them more susceptible at the back and they conceded a second in the 84th minute with Altidore again the provider from the right, this time finding substitute Falkenburg in the centre and he slid the ball past Handanovic.
Handanovic made a fine diving save to push Falkenburg's shot over the crossbar in the 89th minute before Altidore sent a free header straight at the Udinese custodian from close range in stoppage time.
With those chances failing to hit the back of the net, Udinese still have a glimmer of hope for the second leg at the Stadio Friuli next week, although the tie is AZ's to throw away.