公元604年7月,杨广弑其父隋文帝杨坚自立为帝,是为炀帝。杨广即位后,马上假传杨坚旨意赐原太子杨勇死,并派车骑将军屈突通携带伪造的文帝玺书至并州召汉王、并州总管杨谅入朝。
杨谅乃杨坚之子、杨广之弟,素为杨坚所宠爱。及杨勇被杀,杨广又召杨谅晋京,杨谅知道,杨广为了保住皇位,开始对兄弟们痛下杀手了,于是举兵造反,并顺利袭占蒲州。
蒲州在潼关东北、黄河东岸,是入关进取长安的必由之路。杨谅攻占蒲州,任命王聃为蒲州刺史,与纥单贵共守蒲州。
隋炀帝因此遣大将杨素率军进攻蒲州。杨素率轻骑五千至黄河西岸,乘夜收商贾船只数百,在船内铺上厚厚的干草,使兵马上船时践踏无声,然后乘天未明衔枚渡河,黎明时分,杨素的5000兵官已全部过河。遂向王聃、纥单贵的蒲州守军展开猛烈进攻,纥单贵兵败逃走,王聃遂献蒲州以降。
杨广闻杨素收复蒲州,马上任命杨素为并州道行军总管、河北道安抚大使,令他率兵数万讨伐杨谅。
杨素兵发蒲州,径趋太原。杨谅连忙派其将赵子开率兵十余万,在汾水上游的高壁迎击杨素之军。赵子开在高壁列阵50里,以栅栏阻断道路,欲在此阻击杨素,保卫后方的安全。
是时,绛州、晋州、吕州皆是杨谅的地盘,三州守将皆关门拒守,杨素并不攻城,而是各抽2000人马在城外监视之,主力沿汾水北进。盖杨素之意图,一是寻找杨谅的主力决战,歼灭杨谅的有生力量;二是直捣杨谅的老窝太原,使杨谅失去后方根据地,进退无据,束手就擒。因此,杨素并不看重一城一地之得失。
杨素至吕州地界后,杨谅之军早已森严壁垒,强攻无法取胜,于是令诸将率军在正面结阵与杨谅军对峙,他却亲自率一支奇兵潜入吕州东部的霍山,沿山谷北进,神不知鬼不觉地穿越霍山,抵达山谷口。
杨素令将士们在谷口扎营,他坐在营帐外,令军司选二三百人在此守营,其余将士前去袭击屯于高壁的杨谅之军。
将士们害怕谅军人多势众,因此都愿留下守营,争了很久,军司才将300守军选出。杨素闻知士兵们都不愿出战,大怒,令所留300人出营,全部斩首,顿时全军震恐。
杨素复令军司选300人守营。这一回,再也没有人敢要求留下了。杨素遂引军北进,绕到高壁谅军的背后,鸣鼓纵火,向谅军发动突然袭击。谅军顿时大乱,四处溃逃,自相践踏,死者数万。杨谅的高壁防线彻底崩溃。
杨素迂回前进,从背后袭击谅军取得大胜后,杨谅大惧,急忙集晋阳守军10万人南下至蒿泽抵御杨素,恰遇大雨,杨谅欲收军还晋阳,杨谅的谘议参军王支页献策道:“杨素悬军深入,士马疲弊,王以锐卒自将击之,其势必克。今望敌而退,示人以怯,沮战士之心,益西军之气,愿王勿还。”
若杨谅依此策而行,杨素之军至为危殆。可惜杨谅智虑短浅,竟不纳王支页之谋,引军退守清源。
杨谅军既退,杨素趁势进击,杨谅军大溃,只得退守晋阳。杨素兵围晋阳,杨谅心胆俱丧,不敢再战,遂降。
杨谅因是杨广的亲弟弟,杨广假惺惺地赦其死罪,除名为民。但杨谅不久即为杨广幽禁而死。
(《隋书·杨素传》、《隋书·杨谅传》)