Real travel to play Ajax in Holland in their best form of the season after last week drawing away to FC Barcelona in the Camp Nou Stadium in the Copa del Rey and following that up with a 3-1 win over Atletico Madrid to lift them to second in the Liga Santander, six points behind FC Barcelona.
However, Asensio converted the victor when he met a stunning delivery from Dani Carvajal at the far post.
"He's shown his development as a player", Madrid coach Santiago Solari said.
Ajax were not finished, though, and with 15 minutes left they sliced Real open again with Ziyech converting a low cross from David Neres. We did, but you have to be more ruthless.
"We knew how to play the game, to work hard, to suffer when we had to, and then to hit back and score when the chances came", Solari said at the postgame news conference in Amsterdam.
The visitors came out firing in the second half and they almost went ahead after 50 minutes when Dani Carvajal played in Karim Benzema, who saw his first-time strike saved by Andre Onana.
"Amazing atmosphere. I congratulate the fans and this team, who play very good football and with a lot of personality", he said. It's a shame our goal was disallowed.
Ajax, a four-time European champion that last won the title in 1995, looked to have taken the lead only to have VAR rule out Nicolas Tagliafico's 37th minute header because Dusan Tadic was in an offside position and impeding Courtois.
"The correct decision? I think so", he told reporters.
"I hope there will be many more and every day I get up excited to represent the team as captain".
Ajax forward Hakim Ziyech missed the next chance after a subtle touch by Donny van de Beek.
Real goalkeeper Thibaut Courtois, left, makes a save during the first leg, round of sixteen, Champions League soccer match between Ajax and Real Madrid at the Johan Cruyff ArenA in Amsterdam, Netherlands, Wednesday Feb. 13, 2019.
Madrid struggled in the first half against Ajax's high press, but Solari did not agree that it was a poor performance overall.