Yeo was born on August 13, 1997. He is the eldest of two siblings and has a younger brother. As a child, Yeo wanted to appear on television and therefore asked his parents to let him try acting. With the support of his parents, he took acting lessons and eventually made his debut on the big-screen with Sad Movie (2005).
In 2005, Yeo made his debut at the age of eight in the film Sad Movie. He auditioned for the role of Park Hwi-chan and was chosen among 150 candidates despite having no previous acting experience. In 2006, he appeared in his first television drama I Want to Love, playing a sickly child of a single mother; followed by his first role in a sageuk drama Yeon Gaesomun as young Kim Heum-soon.
In 2008, he played the younger version of the lead roles in the series Iljimae and Tazza. He won his first acting award as Best Child Actor at the SBS Drama Awards for both dramas.
In 2010, he starred in the drama Giant as the younger counterpart to Lee Beom-soo's character. According to Yeo, this was the first time he fully immersed himself in a role and began taking acting seriously.
In 2011, he played the younger part of the title character in the historical drama Warrior Baek Dong-soo. He also made a brief appearance as teenage Ddol-bok in the drama Deep Rooted Tree. The appearance was upon the request of its lead actor Jang Hyuk, who took a liking to Yeo when the latter portrayed his younger version in the drama Tazza.
In 2012, Yeo rose to prominence when he starred in the fantasy-period drama Moon Embracing the Sun, playing the role of a young crown Prince. The drama surpassed 40% in ratings and gained "national drama" status. This was followed by a well-received turn in melodrama Missing You. He won Best Young Actor at the 2012 MBC Drama Awards for his portrayal in both dramas.
In 2013, Yeo starred as the titular character in action thriller Hwayi: A Monster Boy, for which he garnered praises and won several Best New Actor honors from annual award ceremonies such as Blue Dragon Film Awards and Korean Association of Film Critics Awards. He is the youngest male actor to receive the Best New Actor award in the history of Blue Dragon Film Awards, at the age of sixteen. In the same year, he was also cast in the sitcom, Potato Star 2013QR3 as an aspiring mobile application developer.
In 2015, he starred in the film Shoot Me in the Heart, based on the bestselling novel of the same name by Jeong Yu-jeong. He had his first leading role on television with teen vampire series, Orange Marmalade, based on the webtoon of the same name. In the same year, he appeared in the Korean War film, The Long Way Home. Veteran actor Sol Kyung-gu, his co-star in the film, strongly recommended Yeo for the role of Yeong-gwang, and only signed the movie contract once Yeo's casting had been finalized.
In 2016, Yeo played the role of King Yeongjo in the SBS drama The Royal Gambler, and won an Excellence Award at the year end SBS Drama Awards.
In 2017, Yeo starred in tvN's science fiction drama Circle, and historical movie Warriors of the Dawn, both of which premiered in May. He was also cast for a special appearance in the star-studded film, 1987: When the Day Comes, based on the June Democratic Uprising. The movie reunites him with Director Jang Joon-hwan and actor Kim Yoon-seok of Hwayi: A Monster Boy. In July, he starred in SBS's romance drama Reunited Worlds.