史载杨坚出自关中高门弘农杨氏,是东汉太尉杨震十四世孙,其四世祖杨元寿被北魏任命为武川镇司马,其父杨忠跟随北周文帝宇文泰起义关西,因功赐姓普六茹氏,官至柱国、大司空,封随国公。死后追赠太保,谥号桓。不过据陈寅恪的考证,杨坚家族可能是山东寒族,其弘农杨氏的身份应出于伪托;而所谓杨元寿留镇武川亦是宇文泰为笼络部下感情而虚构之事。日本学者布目潮沨则认为杨坚家族并非汉族。
天和三年(568年)杨忠死后,杨坚承袭父爵。他有“身在帝王边,如同伴虎眠”之感。齐王宇文宪曾对武帝宇文邕说:“普六茹坚相貌非常,臣每见之,不觉自失,恐非人下,请早除之。”本来宇文邕对杨坚早存疑心,听宇文宪说后,疑心更重。
但是否立即剪除杨坚还犹豫不定,于是便问计于钱伯下大夫来和,来和也说杨坚不凡,但暗中想给自己留条后路。便谎称:"杨坚这人是可靠的,如果皇上让他做将军,带兵攻打陈国,那就没有攻不下的城防。"为杨坚避免了一场杀身之祸。
宇文邕还是放心不下,暗里又派人请相士赵昭偷偷为杨坚看相。赵昭与杨坚友善,当着宇文邕之面佯装观察杨坚脸庞,然后毫不在意地说:"皇上,请不必多虑,杨坚的相貌极其平常,无大富大资可言,最多不过是个大将军罢了。"又使杨坚度过了一次险关。
这时,内史王轨又劝谏宇文邕说:"杨坚貌有反相"。言下之意是要及早除掉杨坚。因为宇文邕对相士赵昭的结论相信无疑了,便不悦地说:"要是真的天命所定,那有什么办法啊?"使杨坚再次化险为夷。
宇文邕死后,其子宇文赟即位。杨坚的长女杨丽华被封为皇后,杨坚又晋升为柱国大将军、大司马。
宇文赟对杨坚的疑心更大,他曾直言不讳地对杨皇后说过:"我一定要消灭你们全家"。并命内侍在皇宫埋伏杀手,再三叮嘱说:“只要杨坚有一点无礼声色,即杀之!”然后他把杨坚召进皇宫,议论政事。杨坚几经化险为夷,心中早有准备,不管宇文赟怎样激,怎样蛮,怎样讲,杨坚都神色自若,宇文赟无杀机可乘。
最后,杨坚想出了"两全"之策,通过内史上大夫郑译向宇文赟透露出自己久有出藩之意。这正合宇文赟的心意,当即任命他为亳州总管。这样宇文赟放心了,杨坚也安心了。
杨坚将任亳州总管时,庞晃劝他就此起兵,建立帝王之业,杨坚握着庞晃的手说:“时机还不成熟啊。”至此,杨坚取周自代的愿望溢于言表。
宇文赟是皇家世袭之君,不问朝政,沉溺酒色,满朝文臣武将敢怒而不敢言。
宇文赟不但不听忠臣劝告,反而觉得这皇帝当得太不称心如意。他终于想出了一个逍遥自在的法招,将皇帝让给年仅6岁的儿子。自称天元皇帝,住在后宫,终日与嫔妃宫女们吃喝玩乐,荒淫无度的生活使他年仅22岁就丧命了。
宇文阐(周静帝)即位,任命杨坚为丞相。周静帝即位时才7岁,还是个不懂事的小孩,所以杨坚就在郑译和刘昉的帮助下以外戚身份就控制了北周的朝政。杨坚当上丞相以后就开始了篡夺北周大权的计划,先是骗北周宗室五王赵王宇文招、陈王宇文纯、越王宇文盛、代王宇文达、滕王宇文逌到长安,雍州牧毕王宇文贤及赵、陈等五王一起被杨坚杀掉,杨坚又任用韦孝宽出兵打败了尉迟迥,消灭了对自己有威胁的政敌。
大定元年(581年)二月甲子日,北周静帝以杨坚众望有归下诏宣布禅让。杨坚三让而受天命,自相府常服入宫,备礼即皇帝位于临光殿,定国号为“隋”,改元开皇,宣布大赦天下。
杨坚平定叛乱之后,统一天下的对手只剩下南方的陈朝和位于江陵一隅之地的西梁。开皇七年九月十九辛卯日(587年10月26日),废西梁后主萧琮,西梁亡。开皇八年(588年),杨坚以杨广出六合、杨俊出襄阳、杨素带领水军出永安,共五十一万八千大军,三路大军伐陈。八年十二月杨素沿长江击破陈的沿江守军,顺流而东。但因为施文卿、沈客卿等扣留告急文书,导致陈朝无法把大军从建康调出。
开皇九年正月二十甲申日(589年2月10日),陈将任忠引韩擒虎攻入建康城,捉住陈叔宝,陈朝灭亡。
不久,各地陈军或受陈后主号令投降、或抵抗隋军而被消灭,只有岭南地区受冼夫人保境据守。
开皇十年(590年)八月,隋派使臣韦洸等人安抚岭南,冼夫人率众迎接隋使,岭南诸州悉为隋地。至此,天下一统。