诸葛亮大军到得城下,遣将围住许昌,四面攻打。曹植命曹仁、典韦、曹休整城中精兵十万,出城迎战,让三将不得贪功冒进,倘若交战不利,即率军退入城内。曹仁等出西门与魏延部相战,魏延部兵力五万,见曹军兵众,结阵迎战,使人急报大营。
诸葛亮见城中守军出战,距离城郭甚近,不能伏兵,率大军与魏延合军,两军交锋。曹仁等将奉曹植之命,只是依城而战,不敢贪功冒进,又命铁盾兵护住前军,防备敌阵强驽。诸葛亮见曹兵沉稳,让谭雄、王平各率两万重骑兵冲击曹军两侧。谭雄、王平率部下转至两侧,往内冲击,曹兵两侧兵挡不住,往内挤来,曹军阵乱。
诸葛亮见时机成熟,挥军出击。曹仁部抵挡不住,率军撤入城内,后军五千余为魏延部挡住,不及入城,为孔明军围于核心,冲突不出。曹仁欲率军来救,为谭雄等将阻住。其军见救兵不到,无路可逃,无奈降之。
曹植见城中诸将皆非诸葛亮对手,命诸将固守不战。诸葛亮百般诱之,曹军奉曹植严命,概不出战。诸葛亮命大军强攻。时曹昂、曹丕皆在城中,见许昌势危,各率家兵家将上城参战。
诸葛亮见许昌防御严密,城中诸将同心协力,贾诩等足智多谋,不易破之。率军屯于许昌城外,暂不攻打。命王平率部下守住通往官渡之路,绝其信息。
许昌之西洛阳,之南谯城,均为金旋之地,只有东路通往官渡。官渡之路被截,许昌与诸郡联系断绝。贾诩见各郡报讯之人多为诸葛亮部擒获,悉泄各郡内情,急报曹植。曰:“今诸葛亮截断许昌与各郡信息,诸郡来报讯者多为孔明擒获,彼军尽知吾军内情,吾军不易胜也。不若命张辽、郭嘉、司马懿等,根据战事调整相邻州郡军政之事,不须事事至许昌请示。”曹植然之。命曹仁率军护使出城,命张辽知乐陵、南皮、易京、北平、襄平防务;司马懿知邺城、晋阳、代县防务;郭嘉知濮阳、界桥、平原防务;于禁知陈留、官渡防务。各郡军政官员,按照所属听命于此四人调遣。
诸葛亮得此信息,命关羽、周瑜、陆逊、姜维部阻断曹军四路兵马通讯,集中重兵逐一破之。