杨昭是隋炀帝杨广的长子,母皇后萧氏(萧皇后),开皇四年正月初五日(584年2月21日),出生于大兴宫。杨昭出生后,其祖父隋文帝杨坚就把他养在后宫之中。杨昭三岁时,在玄武门的石狮子旁玩耍,隋文帝与文献皇后独孤伽罗到了那里。隋文帝正患腰疼,举起手搭在独孤伽罗肩上。杨昭看见了,回避在一边,像这样做了几次。隋文帝感叹说他天生来就有长者的心性,是谁教他这样做的?因此对他感到很奇异。隋文帝曾对杨昭说要为他娶妻。杨昭应声哭泣。隋文帝问其缘故,他回答说:“汉王杨谅未结婚时,总在您这里。一朝娶妻,就出外去了。我怕离开您,因此哭泣。”隋文帝感叹他有至性,特别钟爱他。
开皇十年(590年)二月十六日,隋文帝封杨昭为河南王。开皇十七年(597年)二月二十五日,杨昭纳娶行军总管崔弘度弟慈州刺史崔弘升之女崔氏为南阳王妃,隋文帝为此大宴并按等级赏赐群臣。仁寿元年(601年)正月十三日,隋文帝改封杨昭为晋王,授任内史令,兼任左卫大将军。
仁寿四年(604年),转任雍州牧。同年七月,隋文帝去世,杨昭的父亲隋炀帝杨广即位。十一月初三日,隋炀帝巡幸洛阳宫,留下杨昭守卫京师长安(今陕西西安)。