The Cardinals selected Garcia in the seventh round of the 2010 MLB draft from Hawaii. With the Rookie-level Johnson City Cardinals in 2010, Garcia batted.286 with a.363 on-base percentage, four HR, 15 doubles and 24 RBI in 58 games. He batted.283/.384/.392 combined with the Class AQuad Cities River Bandits and Class A-Advanced Palm Beach Cardinals in 105 games in 2011. He was a Midwest League All-Star selection that season. In a full season with the AA Springfield Cardinals in 2012, he batted.284/.408/.420, with 20 doubles, three 3B, 10 HR, 10 SB, 80 BB in 124 games and 504 plate appearances. He spent the next two seasons with the Triple-AMemphis Redbirds of the Pacific Coast League, batting.271/.377/.384 in 116 games in 2013, and.272/.358/.382 in 106 games in 2014. The franchise selected him as their player of the month for August 2013. The club added Garcia to its 40-man roster after the 2013 season.
2014–15
The Cardinals promoted Garcia to the major leagues on April 28, 2014. His first career run batted in came on a walk-off hit by pitch while pinch hitting with the bases loaded in the 12th inning of a 4–3 win over the Chicago Cubs at Busch Stadium on May 13. After about two weeks with the team, the Cardinals optioned him back to Memphis. Garcia was recalled to St. Louis on August 19, after an injury to Mark Ellis, and was optioned back to AA on August 25. For the 2014 season with St. Louis, Garcia batted.143/.333/.214 with no home runs and one RBI in 14 at bats. Beginning the next season with Memphis, Garcia batted.361 in May, including 11 multihit games. That month, he also amassed four doubles, 12 RBI and five stolen bases, and reached base in 23 of 27 games for a.421 on-base percentage. His batting average ranked 10th-best in the PCL, and Garcia was named the St. Louis Cardinals organization Player of the Month. His totals for Memphis until the time of his major league call-up included a.313 average, 25 RBI and 31 BB. Garcia made his 2015 season debut in the major leagues on June 19 against the Philadelphia Phillies. Garcia's first major league home run was on June 26 in the eighth inning against Pedro Strop of the Chicago Cubs, tying the score in an extra inning, eventual 4–3 Cardinals win. It was his first home run in 294 major and minor league at bats. For the 2015 season with St. Louis, he batted.240/.337/.387 with two home runs and four RBIs in 75 at bats.
2016
The Cardinals opened the 2016 season with Garcia on the major league roster. His first home run of the season, on April 8, became part of a unique event in major league history. Playing the Atlanta Braves, Jeremy Hazelbaker, Aledmys Díaz, and he established a new MLB record by each hitting a pinch hit home run, becoming the first to hit three pinch hit home runs in one game for the same team. The previous record of two pinch hit home runs by the same team in the same game had previously occurred on 57 occasions, most recently in 2011. The Cardinals won this contest, 7–4. The Cardinals optioned Garcia to Memphis on April 18. The Cardinals recalled Garcia from Memphis on May 26, where he had batted.269 in 30 games. For the 2016 season with St. Louis, he batted.276/.393/.369 with three home runs and 17 RBIs in 214 at bats. On defense, in 2016 he played 31 games at third base, 30 games at shortstop, and 26 games at second base.
2017
Garcia played in a career high 133 games, although he started only 52, and hit.253 with 2 home runs and 20 RBIs in 241 at bats.
On April 14, 2018, Garcia homered twice in a 6−1 victory over the Cincinnati Reds for his first multiple home run game in the major leagues. Both home runs came versus left-handed starter Brandon Finnegan, marking the first home runs Garcia hit versus a left-hander in the major leagues. He established another career high with 10 total bases. Garcia finished his 2018 campaign batting.221/.309 /.304 with three home runs and 15 RBIs in 114 games.
San Diego Padres
On November 1, 2018, Garcia was claimed off waivers by the San Diego Padres. He played in 134 games in 2019, hitting.248/.364/.354 with a career high 4 home runs and 31 runs batted in.
Awards
Baseball AmericaToolbox Award for Pacific Coast League "Best strike zone judgment"
Midwest League All-Star
MiLB.com Organizational All-Star
St. Louis Cardinals organization Player of the Month
Personal life
Garcia married girlfriend Hannah Barnett on November 12, 2016, in St. Joseph, Missouri. Their daughter Olivia was born in June 2018.