Gonzalez (8-7) had a season-high eight strikeouts, walked one and allowed only one hit through the first seven innings -- a line drive single to Ryan Ludwick in the fifth.
The Reds added two singles in the eighth before leaving the bases loaded, and Jay Bruce singled with two outs in the ninth. Gonzalez then retired Ludwick on a grounder to complete the shutout.
"It's an awesome feeling," the right-hander said.
David Lough and Jonathan Schoop hit solo shots before Chris Davis connected with a man on in the fourth to make it 4-0. That was more than enough offense for Gonzalez, who has given up four runs over his last 28 1/3 innings.
In his previous 64 major league starts, Gonzalez pitched eight innings on four occasions. This time, he used 117 pitches to go the distance.
"When you have not too many pitches going out to the seventh, eighth inning I think that's what helps," Gonzalez said.
Gonzalez missed 16 days in June with a strained oblique and twice was optioned to the minors because the Orioles needed roster room. Through it all, he never complained -- a trait that endeared him to manager Buck Showalter.
That's one reason why Showalter stuck with Gonzalez in the ninth inning after his pitch count soared past 100.
"I don't want to say he deserves it, but Miggy is such a team guy," Showalter said. "He's such a professional, and that was a professional outing."
Every time Showalter called Gonzalez into his office to tell him about a pending trip to the minors, the manager expressed appreciation for the sacrifice and promised a rapid return.
"There's a real trust there," Showalter said. "He knows we like him and knows we're going to try to keep him in the best position to do good things for our team and do good things for his career."
The victory was the eighth in 10 games for the AL East-leading Orioles during a homestand that concludes Thursday night, when Baltimore will attempt to complete a three-game sweep of the sinking Reds.
Making his third start of the season, Axelrod (1-1) gave up four runs and five hits in six innings.
"He made a couple mistakes and they got hit out of the ballpark," manager Bryan Price lamented. "I thought he competed well. Unfortunately, we didn't do anything offensively at all to give him any support. That's been an underlying theme to our second half."
Cincinnati has lost 15 of 21 and is 6-13 in interleague play, 1-8 on the road.
The Reds are 15-29 since the All-Star break. Price has seen so many losses during a recently, he's run out of ways to explain it.
"We're in the game hitting .219 as a club in the second half," he said. "That's legendary stuff. I don't even know what to tell you guys, to be honest with you."
Axelrod retired the first eight batters he faced before Schoop hit his 14th homer, the second in two nights.
Lough led off the fourth with his first home run since June 7, Nelson Cruz doubled and Davis hit an opposite-field drive to left. Davis has 25 home runs and 71 RBIs this season, decent numbers except when compared his totals last year: 53 homers and 138 RBIs.
Schoop added a two-run double in the seventh off Carlos Contreras, who walked the first two batters he faced.
Reds: SS Zach Cozart will likely be sidelined until Friday with a sore right wrist. "He's going to need a couple of days of letting it be," Price said.
Orioles: SS J.J. Hardy returned after missing Tuesday's game with back spasms. 1B Steve Pearce remained sidelined with an abdominal strain.
Reds: RH Mike Leake (10-11) makes his first career appearance against the Orioles in the series finale Thursday night.
Orioles: RH Chris Tillman (11-5) seeks his 17th consecutive start of allowing three earned runs or fewer. He's got a 2.90 ERA at home.
Copyright by STATS LLC and The Associated Press
BALTIMORE, MD - SEPTEMBER 03: Catcher Devin Mesoraco #39 of the Cincinnati Reds looks on as Jonathan Schoop #6 and...
20,246 (44% full) - % is based on regular season capacity
81 degrees, partly cloudy
Home Plate - Mike Estabrook, First Base - Sean Barber, Second Base - Jerry Layne, Third Base - Hunter Wendelstedt
Jonathan Schoop's 3rd-inning home run off Dylan Axelrod was calculated at 446 feet, the longest home run hit at Oriole Park at Camden Yards this season. It is the second-longest home run hit by the Orioles this season.