Both of the home side's goals came in the first period, with Maximilian Arnold converting from close range in the 25th minute after Ricardo Rodriguez had sent the Bundesliga outfit into an 18th-minute lead from the penalty spot.
Real Madrid had a number of opportunities throughout the 90 minutes, but could not find a route past Diego Benaglio as Wolfsburg ensured that they would take a two-goal lead into the second leg next week.
Wolfsburg were boosted by the return of influential centre-back Naldo following a shoulder problem, while skipper Benaglio was fit to start between the sticks following two months on the sidelines with a rib injury.
Sebastian Jung missed out altogether with a knee injury, but Bas Dost was fit enough for a spot on the bench after missing most of 2016 with a broken foot. In attack, Andre Schurrle was supported by fellow German international Julian Draxler, while there was a Champions League debut for Bruno Henrique.
Sergio Ramos will serve a La Liga suspension following his red card at Camp Nou, but the captain started alongside Pepe at the heart of the defence, while Gareth Bale and Karim Benzema continued in attack alongside Cristiano Ronaldo, who was looking to add to his 90 Champions League strikes.
© Getty Images
Real Madrid had the ball in the back of the net in just the second minute when Ronaldo fired home from close range, but replays showed that the Portuguese was leaning offside when Benzema placed the pass and the flag was raised.
The visitors utterly dominated the early stages and had a penalty shout in the fourth minute when Bale went down under pressure from Luis Gustavo, but the referee was not interested, before Bale failed to make clear contact on a cross from Marcelo.
Wolfsburg's first half-chance came in the 13th minute when Draxler picked out the head of Henrique with a cross from a wide position, but the Brazilian's effort was straight at Keylor Navas.
Less than 60 seconds later, Benzema, who was forced off with a knee problem late in the first period, moved past Dante inside the Wolfsburg box before attempting to poke the ball under the home side's stopper, but Benaglio was on hand to make a smart save.
Wolfsburg were handed a penalty in the 17th minute when Casemiro was penalised for a challenge on Schurrle inside the box, and Rodriguez stepped forward to send the German outfit into a one-goal lead. Schurrle seemed to make contact with Casemiro's leg rather than the other way around, but the referee was in no doubt.
The Bundesliga outfit were 2-0 ahead in the 25th minute when Arnold turned a low Henrique cross past Navas following some terrible defending from Marcelo on the left of Real Madrid's defence.
Schurrle might have made it 3-0 just before the 30-minute mark after breaking into the Spanish side's box, but Navas got down to make the save during a period of pressure from the Bundesliga outfit.
Bale once again set up Benzema 10 minutes before the break as Los Blancos came close to hitting back, but the striker headed wide of the post from close range. Real Madrid continued to threaten in the latter stages of the first period, but Naldo, on his return to the side, made a couple of crucial challenges to keep his team two goals ahead at the interval.
© Getty Images
Real Madrid twice came close to an away goal in the early stages of the second period, but Toni Kroos's strike from distance missed the target, before Ronaldo turned a low Bale cross wide of the post.
Bale again found Ronaldo in the 57th minute with a cross from deep, but once again, the Portuguese missed the target from close range as Wolfsburg kept their two-goal lead intact approaching the final 30 minutes.
The home side had a wonderful chance to score a third in the 69th minute when Henrique delivered a sensational cross into Schurrle, but the German international just missed the crossbar under pressure from Marcelo.
Bale continued to look the most likely to make something happen for the visitors and had another sight of goal 20 minutes from time, only to send his effort over the crossbar from a wide position.
Ronaldo was next to come close for Real Madrid in the 73rd minute, but the Portuguese brought a fine save from Benaglio, before Bale again missed the target from distance as Wolfsburg retreated into a deep position.
Henrique, who impressed on his European debut, then stung the palms of Navas at the conclusion of a Wolfsburg counter-attack, before the Brazilian departed 10 minutes from time as the hosts looked to tighten up their defence.
James Rodriguez was thrown on for Real Madrid five minutes from time as Zidane looked for a crucial away strike, but it was Wolfsburg that came closest to the game's third goal, with only a smart save from Navas keeping out substitute Max Kruse as the Germans shocked the ten-time European Cup winners.