Madrid held a one-point lead over RB Leipzig heading into the final round of fixtures and just needed to match the Bundesliga side's result against Shakhtar Donetsk to be sure of winning the group.
Leipzig was a 4-0 winner against Shakhtar, but Celtic never looked likely to do the German team a favour, conceding two penalties inside 21 minutes as Luka Modric and Rodrygo converted from 12 yards.
Josip Juranovic missed a first-half spot-kick at the other end before Marco Asensio, Vinicius Junior and Federico Valverde gave the scoreline a deservedly emphatic appearance for Carlo Ancelotti's men, though Jota had the final say with a fine free-kick for the visitors.
Modric's cool penalty put Madrid ahead in the sixth minute after Moritz Jenz' handball and, having seen Vinicius Junior denied by a fine save by Joe Hart, the hosts doubled their lead with a second spot-kick, Rodrygo this time converting with Matt O'Riley adjudged to have handled following a VAR review.
Celtic posed a threat of their own and were given a chance to halve the deficit when Ferland Mendy brought down Liel Abada, though Thibaut Courtois denied Juranovic, as he did Lionel Messi when he last faced a Champions League penalty back in February.
Any faint hope of a Celtic fightback was put to bed six minutes into the second half when Asensio fired into the bottom-left corner.
Vinicius heaped more misery on Celtic after being teed up by Valverde, who then swept home a stylish fifth from the edge of the box.
Jota's consolation was equally pleasing on the eye as he bent an effort beyond Courtois and into the top-left corner.