On an indoor court, Roger Federer can win even when he's not playing his best.

He proved that again at the ATP finals, beating David Ferrer 6-4, 7-6 (5) and advancing to the semi-finals with a match to spare despite struggling to land his serve and scrambling to stay in the long rallies.

"I've been very successful over the years. Probably won most titles indoors, maybe more than all the other guys combined," said Federer, who called it a natural surface for him. "But that doesn't make me the best this week."

He is, however, the big favourite.

The two-time defending champion is looking for his seventh title at the season-ending event for the top eight players in the world. He is 2-0 at the O2 Arena, with his last group match against Juan Martin del Potro on Saturday.

Del Potro beat Janko Tipsarevic 6-0, 6-4 in the other Group B match, improving his record to 1-1 and leaving the Serb with two losses heading into Saturday's matches. But Del Potro still needs to beat Federer to advance.

"Win in two sets gives me a chance to go to the next round," said Del Potrro, who traded shots with Manchester City striker Sergio Aguero after the match. "But before I need to beat Roger once again."

Federer made only 53 per cent of his first serves against Ferrer. And in his first two service games alone, he was forced to save six break points.

But he did save them, and three others, while getting broken only once.

"I definitely needed a good second serve, especially in the first set," Federer said. "I didn't have that many serves in play the way I wanted to. Either the rhythm was off a bit or I wasn't pushing enough with the legs or whatever it might have been."

With the victory, Federer improved his record over Ferrer to 14-0. In 10 years of facing each other, Ferrer has won only three sets against the 17-time Grand Slam champion.

That looked like it was going to change on Thursday.

Ferrer was on the run for the entire match, getting to ball after ball to extend rallies and keep Federer on the move. In the opening game, the Spaniard quickly took a 0-40 lead but failed to convert any of his three break chances.

He had three more chances in the third game - minutes after Federer had broken Ferrer's serve - but again Federer was able to pull through and hold.

"I had a lot of chances ... I can't do it," said Ferrer, who won the Paris Masters last week for his tour-leading seventh title of the season. "Sometimes with these players, if I don't take my chance, I don't win the important points; it's very difficult to win these matches."

Ferrer did finally manage a break to get back on serve at 3-2, but Federer didn't allow another.

Both were forced to save break points in the second set, however. Federer saved two, and Ferrer one.

"Ferrer showed why he's so tough to beat. He makes you hit the extra shot. He makes it physical," Federer said. "You know that mentally he's not going to go anywhere."

Ferrer has a chance to overtake Rafael Nadal as the fourth-ranked player in the world, but he may need to win the title to achieve it.

"I don't think about that because Rafa is injured. For me, I don't care if I finish 4 or 5," Ferrer said. "I am trying to do my best to have a great tournament here. And after here, then next week I will have a very important Davis Cup final."