On February 13, 2007, he was signed as an international free agent. He started playing for the DSL Cubs at the age of 17 batting.274 with 3 home runs. He then played for the Arizona League Cubs batting.286 with 2 home runs. In 2009, he went to the Peoria Chiefs batting.248 with 7 home runs. Lake was added to the Cubs 40-man roster on November 18, 2011. Lake suffered a stress fracture in a rib in spring training in 2013. He began the season in the minors. The Cubs promoted him to the major leagues on July 19 after Brian Bogusevic was injured and he was batting.295. Lake went 3-for-4 with a double and a stolen base in his debut. In his first seven games, Lake had 15 hits, tied for the third most by any major league player since 1900. He batted.484 with 2 home runs and 5 runs batted in over this stretch. With the return of David DeJesus on July 24 and the departure of Alfonso Soriano, Lake assumed the starting role of left field. On August 1, 2013, Lake had the first multi-homer game of his career when he hit two solo home runs in a 4-6 loss to the Los Angeles Dodgers at Wrigley Field. On September 6, 2013, he hit the first grand slam of his career in the first inning off Kyle Lohse of the Milwaukee Brewers. Lake finished the 2013 campaign batting.284 in 64 games with 6 homers, 16 RBIs, and 4 stolen bases. Lake started at left field on Opening Day in 2014. He hit his 7th and 8th home runs of the season in a game against the Miami Marlins on June 7, it was his second career multi-homerun game. After hitting just.216 with 9 home runs for the Cubs in 2014, Lake was optioned back to the Triple-A Iowa Cubs on August 16. Lake spent the majority of the 2015 season in Triple-A for the Cubs. He was called up and played in 21 games for the Cubs due to numerous injuries in the outfield.
Baltimore Orioles
On July 31, 2015, Lake was traded to the Baltimore Orioles for Tommy Hunter. Lake appeared in 8 games for the Orioles, batting.136. On December 10, Lake was designated for assignment.
On December 18, 2015, Lake was claimed off waivers by the Toronto Blue Jays. Lake was added to their active roster on June 24, 2016. He was designated for assignment on July 25 after José Bautista returned from the disabled list. He cleared waivers, and was outrighted to the Triple-A Buffalo Bisons on July 31. Lake was brought up to the Blue Jays on August 10 when Bautista was once again placed on the disabled list. On August 16, Lake was designated for assignment after the Blue Jays activated Ezequiel Carrera. Lake played in 22 games for the Blue Jays in 2016, hitting.200 with one home run and two RBI.