2004年,参演首部电影《十七岁的天空》,凭借周天财一角获得第41届金马奖最佳新人奖,和第5届华语电影传媒大奖“最佳新演员”“最佳男演员”提名。
2006年,凭借《圣棱的星光》,获第41届台湾电视金钟奖“戏剧节目最佳男主角奖”提名。
2007年4月,与周迅、吴彦祖主演电影《明明》。
2009年,与陈柏霖、童瑶主演改编自日本青春爱情小说的电影《台北飘雪》,陈柏霖和童瑶在片中饰演一对情侣。
2010年,参演电影《一页台北》,在剧中与张孝全是情敌,该片获得第60届柏林电影节最佳亚洲电影奖;10月,与徐若瑄主演电影《背着你跳舞》上映。
2011年,参演首部电视剧《倾世皇妃》,饰演杀手刘连曦;11月,与林志玲、陈坤等主演的电影《幸福额度》上映;12月参演电视剧《前男友》,凭借赖志明一角获第47届台湾电视金钟奖戏剧节目最佳男主角奖提名。
2012年2月,与陈怡蓉、郭采洁主演偶像剧《向前走向爱走》,饰演杜天泽一角。
2013年2月,与郭采洁主演电影《大尾鲈鳗》在台湾上映四天,票房破八千万台币,打破《那些年,我们一起追的女孩》纪录;8月,主演的电影《总铺师》上映;同年拍摄唐嫣主演电视剧《千金女贼》,饰演20世纪30年代的阔少盛介文。
2014年,杨祐宁在伊能静首次跨界执导的电影作品《我是女王》中饰演TONY;同年在电影《朝内81号》中饰演霍连齐。
2015年主演电影《风中家族》,在电影《太平轮》中饰演盛鹏;同年,作为主演参与电影《新步步惊心》的拍摄,定档于2015年8月20日上映。加盟电影《寒战2》。
2016年4月28日,与林心如主演的《魔宫魅影》全国公映。7月8日,与郭富城、彭于晏主演警匪电影《寒战2》上映。9月15日,战争片《我的战争》上映,饰演司号员张洛东,凭此提名第8届澳门国际电影节最佳男配角奖。
2017年4月23日,参加的湖南卫视明星自助旅行节目《花儿与少年3·冒险季》播出;主演喜剧电影《我不做大哥好多年》;7月加盟《真·三国无双》剧组,饰演刘备。8月11日,搭档刘德华、舒淇主演的冒险动作片《侠盗联盟》上映,在其中饰演技术控陈小宝;同年参演电影《捉妖记2》。
2018年2月16日,与梁朝伟、白百何、井柏然、李宇春合作主演的合家欢电影《捉妖记2》上映,在其中饰演武功高强,外型俊朗的七钱天师云青。1月,参演电视剧《都挺好》,饰演出身富贵却向往自由的小饭馆老板石天冬。9月,在改编自金庸同名小说的新版《天龙八部》中饰演乔峰。11月,在改编自寐语者小说《帝王业》的大型古装电视剧《帝凰业》中,饰演为爱牺牲一切的三皇子子澹。
2019年10月,确认出演电视剧《他其实没有那么爱你》,片中饰演财经自媒体撰稿人陈南。12月1日,主演的援外医疗群像剧《一起深呼吸》开机,饰演急于走出身份认同困境的海归医生李天成。