A equipe 'merengue' saiu na frente com gols de Rodrygo (13) e Vinicius Jr (28), e Oleksandr Zubkov diminuiu a no fim do primeiro tempo (39) mas não foi suficiente para impedir a vitória dos espanhóis.
O Real Madrid lidera o Grupo F com nove pontos, cinco a mais que o adversário desta quarta-feira.
Após a vitória no Santiago Bernabéu, os merengues podem garantir a vaga nas oitavas de final se voltarem a derrotar o clube ucraniano na próxima semana.
A equipe merengue dominou a partida contra o Shakhtar, que só assustou nos últimos minutos do primeiro tempo, quando os jogadores do time da casa pareciam mais relaxados.
O Real Madrid deu um aviso logo cedo com um chute de fora da área de Fede Valverde que foi defendido pelo goleiro Anatoliy Trubin (10).
O meia uruguaio, Rodrygo, Vinicius Jr e Karim Benzema pressionaram juntos a meta ucraniana.
As triangulações entre os quatro foram uma verdadeira dor de cabeça para a defesa visitante.
Rodrygo abriu o placar aproveitando uma bola rebatida na área e chutou rente à trave (13).
Benzema quase marcou o segundo em um chute da meia-lua que Trubin afastou (25), mas o gol veio em uma nova triangulação entre Rodrygo, Benzema e Valverde, que Vinicius concluiu no mano a mano com Trubin (28).
O Shakhtar, preso em seu campo, penava para sair no contra-ataque diante da pressão merengue para recuperar rapidamente a bola.
Benzema teve outra grande chance com um chute praticamente sobre a linha do gol, mas esbarrou em Trubin (35), que se destacou e impediu uma goleada.
- Shakhtar diminui -
Apoiado no placar, o Real Madrid começou a relaxar, permitindo que o Shakhtar chegasse mais longe e na primeira ocasião com perigo dos ucranianos, veio o gol.
Zubkov recebeu uma bola na altura da marca do pênalti, chutou da meia-volta e colocou no canto de Andriy Lunin, substituto do lesionado Thibaut Courtois (39).
O gol colocou o Shakhtar de volta à partida e serviu de alerta para os jogadores locais não baixarem a intensidade do jogo.
Uma intensidade que recuperou após o intervalo, voltando ao desenho inicial com um Real Madrid pressionando na área adversária e deixando para o Shakhtar apenas a possibilidade de contra-atacar.
Em uma dessas saídas, Mykhailo Mudryk correu até ficar frente a frente com Lunin, mas, atrapalhado por Mendy, não conseguiu completar a melhor jogada dos ucranianos no segundo tempo (52).
Com o domínio da bola, o Real Madrid voltou a incomodar a área adversária, mas esbarrou na boa atuação de Trubin.
O goleiro ucraniano fez uma bela defesa para afastar um bom chute de Rodrygo (64), antes de se esticar todo em um chute certeiro de Vinicius (83).
Apesar de ter o controle da partida, o Real Madrid não conseguiu marcar o terceiro gol e fechou a partida com um chute na trave de Marco Asensio (90+1).
- Leipzig vence Celtic -
Pelo mesmo grupo, o RB Leipzig reagiu depois de duas derrotas nas duas primeiras rodadas, com uma vitória por 3 a 1 sobre o Celtic da Escócia.
Com o resultado, o time alemão agora é o terceiro da chave, com três pontos e deixa na lanterna os escoceses, que ficam com um.
O francês Christopher Nkunku colocou o Leipzig na frente aos 27 do primeiro tempo, depois de ter tido um gol anulado pelo VAR nove minutos antes.
O Celtic empatou logo no início do segundo tempo com Jota, mas os alemães garantiram a vitória com dois gols de André Silva, que foi o grande protagonista do jogo, já que fez o passe para Nkunku abrir o placar.