Vapnen hade närmat sig restaurangen från Lidostranden på torsdag kväll och skjutit på matställen.
Tjugo människor dödades. Militanter sprängde också två bilbomber i närheten.
Al-Shabab sa att det låg bakom attacken. Gruppen har ofta angripit Somalias huvudstad.
Vilka är al-Shabab?
Al-Shabab delat med IS-anrop
Sol, surf och granater?
Trupperna belägrade då angriparna på restaurangen i åtta timmar. Det var inte omedelbart klart hur många militanta som dödades eller tillfångatogs.
De somaliska myndigheterna sade att ledaren för attacken hade arresterats.
Premiärminister Omar Abdirashid Ali Sharmarke fördömde morden som barbariska.
Det finns varierande rapporter om hur attacken började men det verkar som om när den första bilbomben exploderade, runt 19:30 lokal tid (16:30 GMT) på torsdag, stormade skyttarna området.
– De sköt slumpmässigt mot människorna som satt nära stranden innan de gick in i restaurangen, sa Ahmed Nur till Associated Press.
Tjugo personer skadades förutom de som dödades, sade polisen.
Efter kvällsbönen gick jag till Lido stranden, i synnerhet Beach View restaurang. När jag var där i ungefär 30 minuter, och jag tillbringade tid med mina vänner, inklusive journalister, såg vi kulor regna på oss.
Ett stort antal människor satt runt omkring mig, det var en vigselceremoni i hallen av restaurangen. Vi började springa mot dörren, men innan jag nådde den hörde vi en hög smäll.
Jag såg några hoppa från andra våningen. Kulor flög över hela stället, och det var en annan explosion. Sen blev alla förvirrade. Jag såg personligen tre sårade människor. Jag såg inte dem som har skadats av explosionerna. Jag tror att bilen stod parkerad nära huvuddörren till restaurangen.
Lido strand, på norra kanten av Mogadishu, lockar tusentals mestadels unga somalier som kommer för att koppla av och njuta av stranden och surfa.
Flera restauranger har öppnat upp längs stranden front under de senaste åren, och folk skulle ha suttit framför dem när attackerna började.
Al-Shabab, som har kopplingar till al-Qaida, drevs bort från Mogadishu i augusti 2011, men har fortfarande närvaro i stora områden i södra Somalia.
Gruppen stormade en militärbas i Afrikanska unionen förra veckan i södra Somalia och dödade dussintals kenyanska trupper.
Somaliska säkerhetsstyrkor har återtagit kontrollen över en populär strandrestaurang i Mogadishu efter en dödlig attack där av islamistiska militanter.