守城
在这样鼓舞人心的壮举感召下,匈雅提的大军在7月14日便抵达了战场。为了冲破土耳其的第一道封锁线,200艘临时凑齐的大小船只,向奥斯曼人的内河舰队,发起攻击。为了迅速击溃严阵以待的对手,匈牙利人特意进行了分兵。较大的船只在装上大量火器后,从正面以楔形阵势冲锋。一些小船则从多瑙河与城市之间的支流萨瓦河出发,从后方夹击土耳其船队。
欧洲历史上罕见的大规模内河水战,就此爆发。双方总计400艘大小船只,在多瑙河上狭路相逢。从可以航海的帆船与桨帆船,到小艇与渔船。双方没有经过太长时间的火力投射,便开始了甲板上的肉搏。由于匈雅提的士兵往往装备更好的盔甲,并有更多火器掩护,土耳其人在近战中颇为吃亏。
此时的奥斯曼帝国,还没有建立自己的专业海军,所以船只与水手都是征召的希腊人和其他穆斯林。这样的乌合之众,在三年前的君士坦丁堡就被几艘热那亚商船,整得死去活来。三年后在贝尔格莱德,他们鲜血染红了原本蓝色的多瑙河。匈雅提的部队,成功打通了城市的水上运输线,他在当天冲破了土耳其海军的阻拦,击沉了3艘大型土耳其军舰,收获4艘大型战船和20艘小型战船。随着苏丹海军的溃败,匈雅提终于可以通过水路运输部队以及补给相当匮乏的食物了。
匈雅提也增强了城堡的防线,但战役好像才刚刚开始。穆罕默德二世并不想在一个星期的炮火攻击后结束这场围攻——当有好几处城墙已经开始破裂。
在多瑙河水战失利后,奥斯曼军队依然掌握着战役的主导权。虽然匈雅提的援军和补给品,可以从港口运抵贝尔格莱德城内,但奥斯曼的主力部队并未受到损失。不情愿撤退的默罕默德二世,下令继续对城市进行炮击。
此后的一周时间里,得到加强的守城部队,在城墙上用自己的火炮与土耳其人打起了炮战。由于中世纪设计标准的城墙,并不适合使用大炮,所以城头火器的口径与射程大都有限。这就让守军在土耳其人的重型攻城炮面前,非常难受。经过一周的对轰,更多城墙和塔楼出现了破损。
习惯取得攻城胜利的默罕默德二世,下令在7月21日日落发起总攻。大量仅仅装备盾牌和刀斧的阿扎普宗教炮灰,在城墙的数个方向上开始猛扑。在被守军的火器和弓弩射退后,鲁梅利亚军团的西帕希骑士与重步兵又接踵而至。精锐的加尼色里近卫军更是在奥斯曼军歌的鼓动下,拼死一搏。由于兵力不足,且很多人只是临时赶来的平民,守军的防线终于开始崩溃。匈雅提和自己的雇佣军一起撤退到了城市中心的堡垒处,而更多守军则被孤立在城市的各段城墙上。虔诚而勇敢的约翰神父,也无力阻止这场溃败。
最后时刻,早有准备的匈雅提下令使出最后一招。退守堡垒的匈牙利人,将大量燃烧物点燃,一起从山坡上推下。深夜中,已经冲入城中的土耳其人,被突如其来的一道火墙所震惊。他们的队伍秩序很快发生混乱,而守军则从堡垒和城墙附近杀回来。于是,攻入城市的奥斯曼军队,一下次被处于危险的包围状态,已经攻入内城进行作战的土耳其士兵因此尽数消灭;在城外进攻的部队也受到重创。当一个土耳其士兵想要把苏丹的王旗插在碉堡上的时候,一位叫杜戈维奇·提图斯(匈牙利语为Dugovics Titusz)的士兵拉住他并一起跳下了城墙(因为他为国家的贡献,匈雅提的儿子即匈牙利王马加什一世在三年后赐予杜戈维奇·提图斯的儿子贵族之身份)。
在损失大半后,幸存者匆忙逃离了城市。默罕默德很难接受自己的战败,但第二天早晨的事情,将会让他更为惊讶。