The game started with both teams creating scoring opportunities, but Real Madrid's Thibaut Courtois made a crucial save to deny Marcos Alonso's header early on.
Real Madrid dominated possession in the first half, and their efforts were rewarded when Arda Güler scored a beautifully deflected goal after 25 minutes.
Just six minutes later, Real Madrid doubled their lead thanks to a clinical finish from Kylian Mbappé, who was set up by Courtois's smart stop.
In the second half, Real Madrid seemingly took control of the match, adding a third goal through a through ball from Güler that found Mbappé, who scored with ease.
Celta de Vigo, however, refused to give up and scored two goals in the final 20 minutes through Javi Rodríguez and Williot Swedberg.
Despite their late surge, Celta de Vigo couldn't overturn the deficit, leaving them with a 16-match winless streak against Real Madrid.
Real Madrid's victory has brought them within four points of league leaders Barcelona with four games left, setting the stage for a thrilling El Clásico showdown next weekend.
Arda Güler was named the Man of the Match for his impressive performance.