China's Zhang Ning became the oldest woman to win Olympic badminton singles gold on Saturday when the 33-year-old beat compatriot Xie Xingfang to defend her Athens title.
Indonesia's Markis Kido and Hendra Setiawan took the gold in the men's doubles, defeating Chinese duo Cai Yun and Fu Haifeng.
Indonesia had earlier extinguished China's hopes of a clean sweep of badminton gold when Liliyana and Nova Widianto beat Yu Yang and He Hanbin in the mixed doubles semi-finals.
The Indonesians will play South Koreans Lee Hyo-jung and Lee Yong-dae for the mixed doubles title on Sunday .
In a battle of badminton generations, Zhang breezed through the first game but had to survive an onslaught from lanky Xie, whose boyfriend and world number one Lin Dan will try to add to China's gold tally in the men's singles final on Sunday.
Xie looked devastated to win only silver, choking up on the podium, while Indonesia's Maria Kristin Yulianti took the bronze.
"I think it was tenacity derived from being 33-years-old at the Beijing Olympics in the final that allowed me to win in the end," Zhang told a news conference.
Zhang looked every bit as fit and fast as her 27-year-old opponent, with a heavily strapped right knee the only sign of the injuries she has been plagued with since the 2004 Games.
"It's normal for either of us to win or lose this game," said a despondent Xie. "I think today I wasn't as fast as Zhang Ning."
A subdued crowd took a while to get into the match but warmed to the occasion as Zhang pushed the world number one around the court to take the first game 21-12.
Xie found her rhythm in the second game, mixing it up with bewildering flurries of spiralling lobs and punishing drop shots to take it 21-10.
The writing looked to be on the wall for Zhang, who by now was flicking sweat to the sidelines and breathing heavily.
She took an early lead in the deciding game but seemed to tire as it went on and allowed Xie to tie it up at 15-15.
However, the Athens gold medallist somehow conjured up a burst of energy to pick up the pace and turn the tables on Xie.
Zhang clinched the match 21-18, jumping for joy before sinking to her knees, burying her head in her hands and wiping away the tears.