Beijing bronze medallist Novak Djokovic will get a shot at adding to his Olympic medal collection after securing a semi-final clash against Britain's Andy Murray.

Roger Federer, hoping to add a singles gold to his 17 grand slam titles, will take on Argentina's Juan Martin Del Potro in the second semi after the Swiss top seed knocked out American John Isner 6-4 7-6.

Serbian second seed Djokovic defeated France's Jo-Wilfried Tsonga 6-1 7-5 while Murray cruised to a 6-4 6-1 win over injured Spaniard Nicolas Almagro.

"Andy is the home hero," said Djokovic of his opponent who reached the Wimbledon final this year. "He has been playing better than ever on grass courts. I will have to be at the top of my game."

Djokovic sped to an early lead against the exhausted Frenchman, who had played both doubles and singles on Wednesday after clocking up the longest three-set match in Olympic history a day earlier.

The Serb dropped just one game before wrapping up the first set with an ace.

"Today I was a bit tired so it was mission impossible," Tsonga told reporters.

He mustered enough energy to put up more of a fight in the second set, breaking the 25-year-old to go 3-1 up. But Tsonga threw away the opportunity to break a second time and the five-times grand slam winner levelled.

Serving for the match on a windy Centre Court, Djokovic secured the win with an unreturnable serve.

"It was a great win for me. Tsonga is a great competitor and he is a very powerful player from the baseline so, for me, the right thing to do today was use my serve as efficiently as possible in these windy, tough conditions," Djokovic said.

Later on Centre Court, Isner gave Switzerland's Federer a run for his money, holding the world number one 4-4 before powering a smash shot out to hand his opponent the lead.

After throwing his hat on the floor in frustration and burying his face in a towel as he sat down at the change of ends, the tall American came back fighting but despite getting a break point he couldn't follow through and Federer took the set.

The second set went to a tie break, with Federer holding up his hands in apology as he snatched victory with a cheeky shot which bounced off the top of the net.

Federer, who will not get to repeat his Beijing doubles win after he and partner Stanislas Wawrinka were ousted by Israel's Jonathan Erlich and Andy Ram on Wednesday, will face eighth seed Del Potro for a place in the final.

The Argentine prevailed 6-4 7-6 against Japan's gutsy Kei Nishikori, conqueror of Spanish fourth seed David Ferrer in the previous round.

On Court One, where Prince William and his wife Kate commanded more of the press photographers' attention than the match, third seed Murray took a 4-3 lead before powering down four successive aces to force Almagro to serve to stay in the set.

The Spaniard held on for one more game, before sending a forehand long to give his opponent the set.

The royal spectators quickly got into the spirit of things, taking part in a Mexican wave which rippled round the crowd several times as 11th-seeded Almagro received medical treatment on his arm and shoulder.

When business got back underway, Murray broke in the first game of the second set, dropping just one game before wrapping up the victory.