Keflezighi, who won the race in 2014 and finished eighth less than two weeks ago with a time of 2:12:42, tweeted that he weighed 121.6 pounds four days before the race and 134 pounds on April 29.
The 5-foot-5 runner told ABC News that he makes an effort to lose weight and stay lean during training for races, but afterward, he said he aims to gain some weight for recovery.
"The next week after a marathon, I don't do anything, and I gain weight," he said. "It's not a horrible thing."
During training leading up to a race, Keflezighi said he runs 100 to 130 miles per week. He eats only two meals a day, skips sugary desserts and drinks 32 ounces of water before dinner to fill his stomach.
Afterward, he eats three meals a day and can treat himself to things like omelettes with bell peppers and cheese, ice cream and strawberry cheesecake.
He said his weight is usually around 125 pounds, but it gets down to about 120 pounds. The most he's ever weighed is about 138 pounds, he said, adding that he steps on the scale every day.
"Weight fluctuates," Keflezighi said. "You have to treat yourself, and you have to also be disciplined when you want to lose weight."
The celebrated runner and three-time Olympian is about to celebrate his 40th birthday next week.