张颌河间郑人,东汉末年,发生轰轰烈烈的黄巾起义。当时各地豪强纷纷起兵镇压起义。张颌开始投奔韩馥时,就是参加了镇压黄巾军的豪强武装,被封为平司马,隶属于冀州牧韩馥。韩馥惴弱无能,拥有强兵猛将,却受了袁绍的哄骗将冀州拱手相让。主将愿意的事情,张颌当时宫小职微无法反对,只好又跟了袁绍,袁绍封他为校尉。袁绍和幽州军阀公孙瓒争夺冀州、幽州的战争中,张颌终因为立功很多,而出人头地,被封为了同中郎将。后来,袁绍为争夺北方而和曹操开战,张颌随着他来到了官渡前线。袁绍比张颌以前的领导韩馥更刚愎自用些。似也并没有高明到哪里去。在骗取了韩馥的冀州,夺得公孙瓒控制的幽州之后,他便刚愎自用,不可一世,听不进别人的劝告。虽然猛将如云,谋士众多,最后还是被曹操在宫渡打得大败。官渡之战开始后不久,袁绍凭借兵力上的优势揸连取胜。但张颌依然觉得曹操足智多谋,因此建议袁绍不要和曹操正面作战,而要派骑兵迂回到曹军的南边后方去攻击他,使曹操腹背受敌无从应付,将他拖垮。可是袁绍只足一意孤行对这位智谋将领的话置若罔闻。
此后,曹操亲自领兵,夜袭袁绍大将淳于琼等人督运粮草屯驻的乌巢时,张颌又曾对袁绍提出过正确的意见。当时,袁绍执意要派少量的兵力去救淳于琼,而领大部去进攻曹操的营盘。张颌知逍屯乌巢粮草失守,袁军就会不战自溃,闪此劝袁绍说:曹操的军队非常精良,淳于琼等人恐怕不能抵敌。淳于琼要是被打败,您也就大势巳去,当务之急应该火速派重兵救援。然而这时袁绍的谋士郭图却说:张颌所说大错特错。现在我们如果攻击敌人的大本营,曹操势必会回军相救,这样淳于琼那也就不救自解了。张颌依然苦苦劝阻:曹操营盘坚固,我们进攻的话,肯定一时之间不容易攻克,如采淳于琼被檎的话,我们就只有束手就擒的份。但袁绍还是没有能采纳他的意见,反而强迫他率军进攻曹操,结果正如张颌所说。
袁绍还没有攻破曹营,曹操就巳纹杀死了淳于琼,袁绍的军队于是不战自乱,溃不成军。郭图见自己失策,心中非常惭愧。他又向袁绍进谗言说:张颌很高兴事情被他料中,出言不逊。张颌知道之后,害怕袁绍加害于他,只好投降了曹操。曹操可以说是少有的,见张颌来投,非常高兴于是立刻加以重任,拜张颌为偏将军,封都亭侯,