杨恭仁的父亲杨雄是隋文帝杨坚族子,北周时期官至上柱国。大象二年(580年),杨恭仁作为功臣之子,被授仪同大将军,封爵武阳县开国公。
开皇元年(581年),杨坚建立隋朝。杨恭仁成为皇族远亲,进拜成安郡开国公,加授左宗卫车骑将军。仁寿三年(603年),杨恭仁出任甘州刺史。他施政宽和,使得治下胡汉百姓各安其所,深得边民之心。隋文帝非常赞赏,对杨雄道:“这不单单是朕任用得人,也是你教子有方所致。”是年末,杨恭仁被征召回朝,担任宗正少卿。大业五年(609年),杨恭仁调任工部侍郎,次年又改任吏部侍郎。大业九年(613年),杨恭仁改任谒者大夫。当时,礼部尚书杨玄感起兵反隋,隋炀帝特命杨恭仁负责征讨事宜。杨恭仁在破陵大败叛军,随后又与屈突通追击至阌乡,擒获杨玄感、杨积善兄弟,因功进授正议大夫。大业十二年(616年),隋炀帝巡幸江都。当时,裴蕴与苏威、宇文述、裴矩、虞世基共掌朝政,排斥异己。杨恭仁因素来廉正,遭到他们的排挤,被外放为河南道大使,负责“讨捕盗贼”。他行至谯郡,被朱粲所部义军击败,只得逃回江都。
大业十四年(618年),宇文化及发动江都兵变,弑杀隋炀帝。他另立秦王杨浩为皇帝,自任大丞相,并以杨恭仁为吏部尚书。不久,杨恭仁随宇文化及逃至河北,驻守于魏县。 而当时,唐高祖李渊已在长安称帝,建立唐朝。武德二年(619年),魏州总管元宝藏归附唐朝,并捕获杨恭仁,将他送往长安。唐高祖与杨恭仁乃是旧交,对他非常礼遇,任命其为黄门侍郎,封观国公。当时,唐朝初定河西。杨恭仁因熟悉西北军情,被拜为凉州总管。他抚慰西北,使得葱岭以东的各部落倾心归附唐朝。唐高祖遂任命杨恭仁为宰相,授为纳言(后改称侍中),仍领凉州总管。武德五年(622年),突厥颉利可汗率军入侵凉州。杨恭仁虚张声势,多布疑兵,使得颉利可汗“惧而退走”。后来,瓜州刺史贺拔威拥兵作乱。杨恭仁招募勇士,急速行军,在叛军没有防备的情况下连克二城。他随后又将抓获的俘虏一律释放,以瓦解叛军的斗志。叛军果然感激杨恭仁的恩惠,绑缚贺拔威缴械投降。武德六年(623年),杨恭仁被召回长安,担任中书令,兼吏部尚书,仍遥领凉州军务。后来,杨恭仁又改任左卫大将军、鼓旗将军。武德九年(626年),唐太宗李世民即位。杨恭仁被免去宰相之职,调任雍州牧,并加授左光禄大夫,代理扬州长史。
贞观五年(631年),杨恭仁改任洛州都督。唐太宗特意对他道:“洛阳乃是国家要害,我家子弟虽多,但都不无法胜任洛州都督之职,所以我特意将此职务委任于你。”当时,杨氏子侄多与皇室联姻,家声显赫。但杨恭仁生性恬淡,谦恭下士,从未与人交恶,被时人比作汉代的宰相石庆。他上疏自称老病,请求致仕。唐太宗遂加拜特进,让他归家休养。贞观八年(634年),杨恭仁被任命为观风使,与李靖、萧瑀、王珪、韦挺等十三人分巡天下诸州,“观省风俗”。贞观十三年(639年)十二月,杨恭仁去世,终年七十二岁 [4] ,追赠开府仪同三司、潭州都督,谥号孝,并获许陪葬昭陵。