北魏北海王元颢受迫于葛荣义军和权臣尔朱荣压迫,投降南梁。梁武帝想以此为契机,接元颢,控制北魏目的。于是,让陈庆之带领七千人马,护送元昊回国。
陈庆之从铚县出发,首先攻克荥城,进抵睢阳城,一天连下三座堡垒,击败了魏将丘大千的数万人。丘大千不敢再战,献城请降。陈庆之在进入睢阳城后,拥立元颢为帝。然后,陈庆之马不停歇,向北进攻考城,生擒北魏济阴王元晖业。很快,来到荥阳城下,荥阳是洛阳东面的重镇。魏将大都督杨昱统率七万人驻守。孙子兵法讲“十则围之”。陈庆之仅七千之众,进攻自身十倍的军队驻守的城池,难度可想而知。第一次进攻失利,此时魏军援军在重臣元天穆带领下赶来支援。梁军上下惊慌。陈庆之让军士休整,并鼓励大家,“我军至此,攻城略地,杀人父兄,掳掠子女,不计其数,我军七千,敌军三十多万,如果不决一死战,决无生理,敌人马多,必须在他们到来前,攻破城池,大家一定不要迟疑,否则就是砧板上的鱼肉,只能任人宰割”。然后陈庆之擂鼓攻城,将士们精神抖擞、一鼓作气攻克了荥阳城。这时元天穆的援军也兵临城下,于是陈庆之乘其立足未稳,背靠城墙率领三千骑兵迎战,大破援军。此战陈庆之速战速决,把现代的闪电战诠释得淋漓。战后,洛阳小儿传唱“名师大将莫自牢,千军万马避白袍”。北魏孝庄帝匆匆逃出都城洛阳,陈庆之顺利进占洛阳。陈庆之从铚县到洛阳,三千余里,攻克三十二城,大小四十七战,在北魏如入无人之境。
但其兴也勃焉,亡也乎焉。在占据洛阳后,面对魏军大规模反扑,最终陈庆之全军覆没,只有自己孤身一人逃回了南梁。
陈庆之北伐失败最根本的是,他的同盟者元颢与南梁同床异梦。元颢只不过想借助南梁势力,趁着北魏内乱,夺取帝位。在成功占据洛阳后,便与心腹密谋夺取脱离南梁控制。特别是在陈庆之劝他请求南梁增兵的时候,他的谋士劝他,陈庆之现在仅有数千士兵已经很难驾驭,如果再让他增兵,以后怎么能驾驭。到时候大魏就真得灭亡了。于是,元颢就给梁武帝去信,说如今河北、河南都已平定,只剩下尔朱荣小股部队,我和陈庆之就能平定。各州郡尚需安抚,不宜再派兵骚扰百姓。于是,梁武帝就让其他部队在边境驻扎,不再增援,导致陈庆之始终孤军奋战。
陈庆之北伐失败原因还有就是,因为元颢与陈庆之互相猜疑,陈庆之副将劝他,将军威震中原,功高势众,又被元颢猜疑,一旦发生不测,前景堪忧。不如趁机杀死元颢,占据洛阳。但是这个建议委实凶险,更会及早暴露双方不和。陈庆之没有采纳。元颢让陈庆之驻守洛阳东北的黄河北岸北中城。自己守在南岸。很快尔朱荣大军到来,进攻北中城。陈庆之三日十一战,杀伤甚众。尔朱荣见屡攻不下,只能从别处渡河。渡过黄河一举击败元颢守军。元颢也在逃跑途中被杀。陈庆之见大势已去,只得带兵东还,先前得到城池又都得而复失。尔朱荣带兵猛追,梁军又被汛期颖水冲没,最终陈庆之只是只身一人化妆成僧人逃回南梁。
陈庆之失败还有一个重要原因是最后决战的时候是北魏权臣尔朱荣。尔朱荣不仅掌握北魏大权,本人也有着极高的军事才能。他曾以七千骑兵一举攻破六镇起义的葛荣三十万大军,并生擒葛荣。与陈庆之正是棋逢对手。同时,他手握北魏军政大权,又掌握着陈庆之无法比拟的军事资源。当时,陈庆之北伐过程中并未与北魏名将交锋。而且尔朱荣精力、北魏的兵力主要放在平叛上,正是这些客观因素,加上陈庆之的杰出军事才能,才使得他屡战屡捷,在北魏如无人之境。而一旦这些客观条件都失去了,再加上猪队友元颢,最终以陈庆之之才也无力回天。