On July 21, 2017, the St. Louis Cardinals acquired O'Neill for pitcher Marco Gonzales, and assigned him to the Memphis Redbirds of the PCL. O'Neill finished 2017 with a combined.246 batting average, 31 home runs, and 95 RBIs in 130 games between Tacoma and Memphis. The Redbirds became the 2017 PCL champions after defeating the El Paso Chihuahuas in five games in the league championship final, giving O'Neill consecutive minor league championships with two different organizations at two different levels. The Cardinals added him to their 40-man roster after the season to protect him from being chosen in the Rule 5 Draft. MLB.com ranked O'Neill as St Louis' fourth best prospect going into the 2018 season. He competed in spring training for an opportunity to make the major league roster as a reserve, but hamstring and oblique injuries kept him out of play. He began the season with Memphis and was promoted to the major leagues on April 19, 2018. He had been leading the PCL with six home runs and 18 RBI. He made his debut the next night at Wrigley Field against the Chicago Cubs, making him the sixth Canadian-born player to appear on an active major league roster on the season. He was sent back down on April 28 after seven hitless at bats and recalled again on May 18. He mustered his first major league hit, a single off Yacksel Ríos of the Philadelphia Phillies that same night in a 12–4 St. Louis win. O'Neill hit his first major league home run the next day off Luis García. On May 21, he amassed his first four-RBI game, and homered in his third consecutive game the following day. He was optioned back to Memphis on May 31 and was recalled by St. Louis for the second time on July 2 to take the spot of Dexter Fowler, who had gone on paternity leave. He was placed on the 10-day disabled list on July 5 with a hamstring strain, was activated on June 17, and was optioned back to Memphis. He was recalled once again on July 31 following the trade of Tommy Pham, and spent the remainder of the season in St. Louis. He hit his first walk-off home run on September 22, a 414-foot shot, against the San Francisco Giants, leading St. Louis to a 5-4 victory. In 61 games for the Cardinals, O'Neill batted.254 with nine home runs and 23 RBIs. In 2019, O'Neill made St. Louis' Opening Day roster, but his season was interrupted by injuries alongside being reassigned to Memphis for over a month. He was recalled to St. Louis in June, and finished the year with them. Over sixty games, he hit.262 with five home runs and 16 RBIs.
Personal
O'Neill plays the piano, and entertained his teammates in the clubhouse during spring training in 2017 by playing the theme song to the "Lord of the Rings" film series on a keyboard. He says his favourite song to play is "O Canada." An avid weightlifter, O'Neill has been recorded on video quarter-squatting as much as. He was given the nickname "Popeye" while playing in the Southern League. O'Neill's father, Terry, was named Mr. Canada in 1975.