In 2014, O'Neill played in only 51 games between the Arizona League Mariners, Everett AquaSox and Clinton LumberKings due to a broken bone in his right hand he suffered after punching a concrete wall in the dugout.
[8][failed verification] O'Neill played for the Canada national team at the 2015 Pan American games in Toronto and the 2015 WBSC Premier12.
[9][10][11] In the 2015 Pan Am Games final, Canada defeated the United States 7–6 in extra innings to claim the gold medal.
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.
[20] 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.
[25] He mustered his first MLB hit, a single off Yacksel Ríos of the Philadelphia Phillies that same night in a 12–4 St. Louis win.
[27] 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 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.
[32] 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.
[34] O'Neill made St. Louis' Opening Day roster in 2020, and spent the whole season there starting in the outfield, slashing .173/.261/.621 with seven home runs and 19 RBIs over 139 at-bats.
[38] He was later named the National League Player of the Month for September after hitting .328/.377/.731 with 13 home runs, thirty RBIs, and a 1.108 OPS.
[39] O'Neill finished the 2021 season with 482 at-bats over 138 games, slashing .286/.352/.560 with 34 home runs, eighty RBIs, and 15 stolen bases.
[42] He struggled to open the season, slashing .195/.256/.297 with two home runs and 42 strikeouts over 32 games before he was placed on the injured list in mid-May with a sore shoulder.
[51] O'Neill hit home runs for the Cardinals in four consecutive Opening Day games, from 2020 through 2023, tying the major-league record (also achieved by Todd Hundley, Gary Carter, and Yogi Berra).
[52] On December 8, 2023, the Cardinals traded O'Neill to the Boston Red Sox for Nick Robertson and Victor Santos.