杨师道是观王杨雄幼子,隋末客居洛阳,被王世充扣留,后投奔唐高祖。唐高祖任命他为上仪同、备身左右,还把寡居的女儿桂阳公主嫁给他。
621年(武德四年),时任灵州总管的杨师道击退东突厥入侵。622年(武德五年),杨师道又与交州刺史权士通、弘州总管宇文歆在三观山击败东突厥。624年(武德七年),庆州都督杨文干起兵反叛,杨师道与左武卫将军钱九陇前往征讨。不久,东突厥入侵原州(今宁夏固原),唐高祖先命宁州刺史鹿大师救援,又命杨师道赶赴大木根山,截断突厥归路。
后来,杨师道回朝,担任吏部侍郎,累迁至太常卿,封安德郡公。636年(贞观十年),杨师道接替魏征担任侍中,成为宰相,深受唐太宗器重。他生性谨慎,从未泄露过宫中之事。如果有亲友问起,他都会转移话题。639年(贞观十三年),杨师道改任中书令。643年(贞观十七年),唐太宗命杨师道与长孙无忌、房玄龄一同审理太子李承乾谋反案。当时,桂阳公主与前夫之子赵节也参与谋反。杨师道便劝谏太宗,为赵节说情。唐太宗大怒,罢免杨师道的中书令之职,改任为吏部尚书。杨师道出身豪门,不通下情。主掌吏部后,他压制权贵、亲朋以避嫌疑,所任命的官员却大多都是庸才,因此受到舆论的讥讽。645年(贞观十九年),杨师道随唐太宗征讨高句丽,并代理中书令之职。
646年(贞观二十年),唐太宗返回长安。杨师道被罢为工部尚书,不久改任太常卿。647年(贞观二十一年),杨师道病逝,追赠吏部尚书、并州都督,谥号懿,陪葬昭陵,并获赐东园秘器。