Real dominated possession early on, but it took them 28 minutes to carve out a decent opening. And it was a decent opening, with Alvaro Morata striking a post from a tight angle.

Charles served notice of his threat when getting on the end of a cross from Nolito and sending his header just over the bar.

Five minutes before the break, Morata had another good chance for Real when meeting a cross from Marcelo but he fired wide.

Morata was made to pay for his profligacy as Celta took the lead on 43 minutes. Sergio Ramos was sloppy in possession and that allowed Charles to nip in and take the ball.

The forward needed no second invitation as he drove forward, went round Diego Lopez and slotted the ball home.

Real came out strong at the start of the second half and both SamiKhedira and Ramos had shots charged down.

Ramos thought he had atoned for his error when he slotted home on 50 minutes, but his goal was ruled out for offside.

A minute later, LukaModric went desperately close to drawing Real level but he fired over the top of the bar.

On 63 minutes, and for the second time in the match, Real gifted a goal to Celta. Xabi Alonso played a backpass that was too short, Charles intercepted and went round Lopez before stroking the ball into the empty net.

Real went in search of a route back into the game and AsierIllarramendi stung the plams of Sergio Alvarez, but they were unable to break down Celta.

Ancelotti's men are out of the title race and their focus will now be on the Champions League final against Atletico.