I didn't know that I were able to use "deliver" in this sentence.
Because I thought about the fight or battle.
We can say : to give a fight/battle.
Can we say "to deliver a fight/battle"?
If this expression sounds English, I agree with Tantine, the best choice is to use "deliver".
Yes, I suggest "deliver" as it seems, to me, to be the most appropriate term in English. As a native English speaker, it "rings" much better in my ears than "give". Both are possible, one can either give battle or deliver a battle, but "deliver" gives your text a much more natural feeling