西魏大统七年(541年)六月癸丑夜,杨忠之妻吕氏(名苦桃)于冯翊般若寺生下了杨坚。当时有比丘尼智仙对吕氏说,杨坚此人不可与常人一样抚养,所以她将杨坚带到别馆,亲自抚养。幼年的杨坚为人深沉少言,刚刚进入太学的时候,即使是十分亲密的人也不敢戏弄。
西魏恭帝二年(555年),杨坚十四岁时,京兆尹薛善征辟他为功曹。翌年,因为其父杨忠的功劳被授为散骑常侍、车骑大将军、仪同三司,封成纪县公。
西魏恭帝四年(557年),16岁被封为骠骑大将军,加开府。
北周武成元年(559年),北周明帝即位,授杨坚为右小宫伯,进封大兴郡公。
武成二年(560年),周武帝宇文邕即位,杨坚任小宫伯,出任为随州刺史(今湖北省随州市),进位大将军。后来被调任京城。在其母身边侍疾三年,昼夜不离左右,都称他纯孝。当时宇文护执掌朝政,非常忌惮杨坚,多次想要谋害他,幸而有大将军侯伏、侯寿等人的保护才得以幸免。
天和三年(568年),父亲杨忠死后,杨坚承袭随国公的爵位。周武帝聘杨坚的长女杨丽华为皇太子妃,对杨坚更加礼重。
建德四年(575年),24岁的杨坚率水军三万,于河桥大败北齐的军队。
建德五年(576年),杨坚跟从周武帝亲征平齐,进位为柱国。与齐王宇文宪一起在冀州大破齐任城王高湝,被封为定州总管(今河北省定州市),很快又转任亳州总管(今安徽省亳州市)。
宣政元年(578年)六月,周武帝宇文邕死后,太子宇文赟即位周宣帝。杨坚的长女杨丽华被封为皇后,杨坚因为是皇后之父又晋升为柱国大将军、大司马。
因为周宣帝忌惮杨坚,通过内史上大夫郑译向宇文赟透露出自己久有出藩之意。这正合宇文赟的心意,当即任命他为亳州总管。这样宇文赟放心了,杨坚也安心了。杨坚将任亳州总管时,庞晃劝他就此起兵,建立帝王之业。
大象二年(580年)五月,以杨坚为扬州总管,以筹备伐陈事宜。 将要出发的时候,突发足疾,没有立即出发。同年五月,周宣帝病危。御正下大夫刘昉、内史上大夫郑译伪造诏书,让随国公杨坚接受遗命,辅佐朝政。
杨坚当上大丞相以后就开始了篡夺北周大权的计划。二十四日,宇文赟在天德殿病逝,时年二十二岁。之后周静帝拜杨坚左大丞相,百官皆听命于他。周宣帝时,刑政苛酷,人心崩溃而不归附杨坚任大丞相后,施政宽和,精简严苛的法令,天下之人心无不归附于他。
大象二年(580年)六月,北周宗室中有实力的都到了长安。相州总管尉迟迥看到杨坚擅政心中不平,于是举兵东夏。聚集了十万兵马。杨坚出兵打败了尉迟迥,消灭了对自己有威胁的政敌。杨坚的这一胜利,稳定了内部的统治秩序。接着便以谋反的罪名,先后杀掉了鲜卑族中的反对力量。 同时又拉拢元谐、元胄、宇文忻等部分鲜卑贵族。这样就使杨坚集团改朝换代的计划,不再受到任何阻碍。