A 92-year-old cancer survivor has become the oldest woman to finish a marathon.

Harriette Thompson, of Charlotte, North Carolina, completed the Rock 'n' Roll Marathon in San Diego in 7 hours, 24 minutes, 36 seconds. She was mobbed by well-wishers as she crossed the finish line.

"I'm fine, they're really pampering me here," she said in a firm, joyful voice as people all around her shouted congratulations.

This was her 16th Rock 'n' Roll Marathon and, by far, the hardest.

"It's always harder but this year has been a bad year for me," she said, adding her husband died in January following a long illness and she battled an infection in one of her legs.

"I couldn't train very well because my husband was very ill and I had to be with him for some time and then when he died in January I had some treatments on my leg," she said. "I was just really thrilled that I could finish today."

The oldest woman previously to complete a marathon was Gladys Burrill, who was 92 years and 19 days old when she completed the 2010 Honolulu Marathon.