Cristiano Ronaldo, top scorer in this season's competition, struggled after returning from injury and record signing Gareth Bale only played the final 20 minutes following a bout of flu.
Karim Benzema scored the winner in the 19th minute at the Bernabeu, setting Real up nicely ahead of Tuesday's second leg in FC Bayern Munich as they seek a first appearance in the final since they won their ninth European crown in 2002.
"Without Bale and with Cristiano at 50 percent it is not easy to play so well," Ancelotti told a news conference.
The Italian, in his first season in charge, said it had been agreed Ronaldo would only play part of the match after missing the last four games with knee and thigh muscle problems and he was replaced by Bale in the 73rd minute.
"We did not want to run any risks and tire out the muscle," Ancelotti said.
"Cristiano played well. He wasn't at 100 percent but he sacrificed himself a lot and on Tuesday he will be better, just like Bale.
"We are happy to have him (Ronaldo) back. He worked very hard to help the team."
Ancelotti said Real had a "small advantage" ahead of the trip to Munich as they chase an elusive 10th European title.
"The result was a good one. We have to know that we will suffer (in Munich) but we will give our all just like today," he said.
The winners will play Atletico or Chelsea, who drew 0-0 at the Calderon in Madrid on Tuesday, in the final in Lisbon on May 24.