Rosenberg, 37, finished third in the Baltimore marathon in 2013, running 2:40:07. His previous personal best came last November in Philadelphia, when he finished in 2:34:02.
Berdan became the first United States citizen to win the Baltimore marathon last year, the first year the race did not award prize money. He had hoped to run "in the mid-2:20s" on Saturday, but struggled with a hip injury he suffered while training.
"I could tell he wasn't 100 percent today," Rosenberg told WBAL-TV.
More than 25,000 people participated in the 14th Baltimore Running Festival, which includes the marathon, team relay, half-marathon, 5K and kids run.
Nick Arciniaga, 31, of Flagstaff, Ariz., won the men's half-marathon in 1:07:45. Julia Roman-Duval, 32, of Columbia, won the women's half in 1:20:53.