Moore (2-3) threw six scoreless innings but was pulled after 76 pitches. Hector Neris pitched a 1-2-3 seventh with two strikeouts before Archie Bradley allowed Tyler Stephenson's homer leading off the eighth.
There have been seven no-hitters in the majors this season, one shy of the major league record set in 1884 - the first year overhand pitching was allowed.
With Moore having not gone past six innings in any outing this season, manager Joe Girardi reluctantly didn't let the lefty go for the eighth no-no in the big leagues this year.
"I hated to take him out, but we felt like we couldn't push him any further," Girardi said. "He pitched outstanding. We need people to step up, and he stepped up big today."
Moore is an unlikely candidate for a no-hitter. The 32-year-old has been used in dual roles this season, but not effectively. He was making his 10th start and entered 0-3 with a 6.98 ERA when beginning the game. He only got the ball because the Phillies needed a starter with Zach Eflin (knee) and Vince Velasquez (blister) on the IL.
"It feels good to still be here after the rough time throughout the course of the season," he said. "Being able to come through in the bullpen or the rotation or somewhere in between is all I want to do, and just be a part of it and contribute in a positive way."
Moore had no objections to being removed.
"With nearly a seven ERA, there's something that doesn't feel right about that," he joked. "I'm a Phillie before anything else; this is about the win today."
Harper cruised into third for an RBI triple in the eighth inning, made a celebratory hand gesture toward the home dugout then took off for home following a lackadaisical Reds blunder after the play was seemingly over.
Cincinnati shortstop Kyle Farmer caught the relay from the outfield as Harper reached third, then flipped the ball casually toward first baseman Joey Votto near the pitcher's mound. Votto wasn't expecting the ball and didn't see it fall behind him. When catcher Stephenson abandoned home plate to retrieve it, Harper sprinted home easily.
Andrew McCutchen and Ronald Torreyes went deep for the Phillies, who began the day tied with Atlanta for the NL East lead. It was just the Phillies' second win in the last five since an eight-game winning streak vaulted them into first place.
Farmer had the only other hit for the Reds, a sharply struck ball in the ninth that went off the glove of Torreyes at third base but didn't leave the infield.
"Moore was outstanding," Reds manager David Bell said. "He kept us off balance. He's been doing it for a long time and really stepped up for them and pitched a great game."
He was dominant from the jump, striking out two during a nine-pitch first inning. He finished with eight strikeouts and two walks.
The crowd of 25,100 rained down boos on Bradley, who has been stellar this season, when Stephenson drove a 3-1 fastball to right to begin the eighth. Bradley recovered for no more runs, and Ian Kennedy pitched a scoreless ninth to finish off the 2-hour, 38-minute contest.
The Phillies got on the board in the third when Torreyes hooked a 97-mph fastball off Luis Castillo (6-12) just inside the foul pole in left for his sixth homer of the season. Torreyes was starting at third base for the fifth straight game as Girardi tries to reset Alec Bohm, who has struggled defensively for much of the season and especially lately.
Philadelphia upped its advantage to 2-0 in the sixth on J.T. Realmuto's RBI double, and it was 3-0 after Travis Jankowski's pinch-hit RBI single in the seventh.
Castillo gave up three runs on five hits with eight strikeouts and two walks in 6 innings.
LAST PHILLIES' NO-NO
Cole Hamels threw Philadelphia's most recent no-hitter, a 5-0 win at Chicago on July 25, 2015, in his last start in a Phillies uniform.
Reds: OF Jesse Winker (back) was out of the lineup for the second straight day. Winker was evaluated prior to the contest, and Bell said he would likely be back in the lineup on Sunday or Monday.
Phillies: LHP Bailey Falter was activated off the COVID-19 IL. Falter twice was placed on the COVID-19 IL, on July 11 and then again on July 20. ... 1B Rhys Hoskins (groin) had a cortisone shot and is expected to be activated on Tuesday.
Reds RHP Sonny Gray (4-6, 4.40) faces Phillies RHP Aaron Nola (7-6, 4.35) in the finale of the three-game series on Sunday afternoon.
Torreyes, McCutchen homer in Phillies' win vs. Reds
Ronald Torreyes and Andrew McCutchen both go yard in the Phillies' home win vs. the Reds.