"We left Afgoye district and attacked Al Shabaab in the farms outside Afgoye," Major Mohamed Ali told the media, describing Wednesday's incident in the district about 30km (19 miles) from Mogadishu.
"We killed four militants and chased Al Shabaab," Ali said late on Wednesday. "Most of the military came back and we left two dozen soldiers there. Then, this evening, Al Shabaab attacked our few soldiers and killed 13."
Al Shabaab, which launches regular attacks in a bid to undermine Somalia's central government, which is backed by the United Nations and African Union peacekeeping troops, claimed responsibility.
"We killed 24 soldiers and the rest escaped and ran away," said Abdiasis Abu Musab, the group's military operations spokesman.
Somalia's government and al Shabaab often give differing figures of casualties after attacks.
Deadly violence has engulfed Somalia since 1991, when clan warlords deposed leader Siad Barre and then turned on each other.