Gonna say it was Roger.
And the only reason is simply Sengoku's own words (He was Roger's first and most powerful enemy). So, if Roger's most powerful enemy ended up being defeated by someone else, it will be the equivelant to let's say at EoS, the most powerful pirate opponent for Luffy is Blackbeard, and he simply ended up being defeated by Koby or smoker instead of Luffy LOL
I mean, hey, nothing is impossible, but if you are all okay with that happening in future, it will be the same hahaha. We all know how Oda loves wanking Roger, it will all circles and turn around and ends up with Roger here. Not taking anything away from garp, he probably scholded the commanders, or even helped in defeating Xebec with Roger in a team up, but regardless, Roger imo is the one who finished the job and garp took credit just like how Smoker-crocodile event was accredited to Smoker and both Smoker and Garp are pissed about it