San Diego also activated catcher Luis Campusano (thumb) from the 60-day injured list, promoted first baseman Alfonso Rivas and outfielder Taylor Kohlwey from El Paso and optioned infielder Brandon Dixon to El Paso.
In addition, the Padres transferred right-hander Reiss Knehr (elbow) from the 15-day injured list to the 60-day list to open up a 40-man roster spot.
The decision to part with two veterans came before the Padres' 9-1 road victory over the Toronto Blue Jays on Tuesday night, which ended a three-game skid and brought their record to 45-50. San Diego is 10½ games out of first place in the NL West.
Odor, 29, batted .210 with four homers and 18 RBIs in 59 games with San Diego. The 10-year veteran has a .230 career average with 178 homers and 568 RBIs in 1,154 games for four teams.
Nola, 33, recently lost his starting job to Gary Sanchez and was batting just .146 with one homer and eight RBIs. He has hit .234 with nine homers and 86 RBIs in 237 games for the Padres since being acquired at the 2020 trade deadline from Seattle as part of the trade in which the Mariners landed 2022 All-Star Ty France.
Sanchez, a two-time All-Star, hit his ninth homer of the season Tuesday night and is batting .190/.261/.416.
Campusano, 24, was 5-for-21 with a homer and two RBIs in seven games earlier this season before the injury. He will be Sanchez's backup.
Dixon, 31, was batting .203 with two homers and nine RBIs in 33 games for the Padres.
Rivas, 26, went 2-for-7 with an RBI in four games for San Diego earlier this season. He is batting .332 with nine homers and 40 RBIs in 58 games for El Paso.
Kohlwey, 28, was batting .261 with nine homers and 49 RBIs in 78 games at El Paso.
Knehr, 26, was placed on the injured list June 28. He is 0-1 with a 15.88 ERA in four appearances (one start) with San Diego this season.
Reuters and The Associated Press contributed to this report.