At the age of 16, on July 4, 2008, Narváez signed a contract with the Tampa Bay Rays organization. In 2009, he made his professional debut with the VSL Rays of the Venezuelan Summer League. In 47 games, Narváez posted a.315 batting average and 27 runs batted in. He remained with the VSL Rays in 2010, batting.308 in 46 games, with one homer and 20 RBI. Narváez also earned 27 walks compared to only 11 strikeouts. Narváez joined the GCL Rays of the Gulf Coast League for the 2011 season. In 47 games, his average dipped to.221 and he drove in 15 runs. His batting average climbed back to.305 in 2012, when Narváez joined the Princeton Rays of the Appalachian League. In 43 games, he tallied one homer and 16 RBI. In 2013, Narváez was promoted above Rookie–level for the first time in his career. He joined the Hudson Valley Renegades of the Single–A New York–Penn League. He batted.267 in 39 games, driving in 13 runs.
On December 12, Narváez was acquired by the Chicago White Sox via the Rule 5 draft. Narváez split the 2014 season between the Kannapolis Intimidators and the Winston-Salem Dash. With Kannapolis, a member of the mid Single–A South Atlantic League, Narváez saw action in 38 games. He batted.291 and drove in 20 runs. Narváez also appeared in 47 games with Winston-Salem of the high Single–A Carolina League, where he batted.279, with 2 homers, 16 RBI, 27 walks, and 21 strikeouts. Narváez played in a total of 85 games in 2014, well surpassing his prior career high of 47 appearances. Narváez remained with Winston-Salem for the 2015 season. He saw action 98 games and posted a.274 average, one home run, 27 RBI, 40 walks, and 31 strikeouts. He also appeared in 13 games for Bravos de Margarita of the Venezuelan Winter League. Narváez spent the 2016 season with a pair of Chicago's minor league affiliates, the AA Birmingham Barons and the AAA Charlotte Knights, as well as the parent club. He batted.222 in 13 games with Birmingham and.245 in 41 appearances for Charlotte.
Major leagues
Narváez was called up to the Major Leagues for the first time on July 6, 2016. He made his MLB debut on July 17 against the Los Angeles Angels and he doubled off pitcher Jered Weaver in his first at-bat. Narváez hit his first MLB home run, a solo shot off Minnesota Twins reliever Pat Dean, on September 30, his father's birthday. Overall, Narváez saw action in 34 games for the White Sox and posted a.267 batting average, one home run, and 10 runs batted in.
Seattle Mariners
On November 30, 2018, the White Sox traded Narvaez to the Seattle Mariners in exchange for Álex Colomé. In 2019, he hit.278/.353/.460/.813 with 22 home runs and 55 RBI.
Milwaukee Brewers
On December 5, 2019, Narváez was traded to the Milwaukee Brewers in exchange for Adam Hill and a 2020 competitive balance round B draft pick.