Campusano shrugged off the notion that he had been nervous.
"Why should I be nervous?" he said. "I was just like normal."
After Campusano's hit, Darren Daulton flied out to right to end the game.
With one out in the eighth, John Kruk appeared to end the no-hitter when his two-hop smash was headed toward right field.
But second baseman Jose Lind, racing to his left in shallow right field, made a diving stop and, from his knees, fired a one-hopper toward first baseman Sid Bream. Bream, who had four hits in the game, made the scoop and retired Kruk by less than a step.
The Veterans Stadium crowd - which honored the 1980 championship Phillies team before the game - roared its approval.
Drabek then struck out Dickie Thon on three pitches to end the eighth.
In the ninth, with the crowd cheering each pitch, Drabek retired Charlie Hayes on a grounder to short.
Two outs to go.
He struck out Ricky Jordan, swinging, on a 1-2 pitch.
One out to go.
Up stepped Campusano, who had replaced centerfielder Len Dykstra in the seventh inning.
The sequence: A called strike. A check swing that was ruled a ball. A ball. A strike, swinging. A foul back. A ball, way outside.
Campusano then lined a single to right center.
The fans booed.
Some of the Phillies came out of the dugout and made angry gestures at their fans.
"It was a little discouraging," said Tom Herr. "(It's) kind of frustrating when the fans are rooting against the home team. The guys weren't real happy about it. It made us more determined to break it up."
Said Phillies manager Nick Leyva of Drabek: "He finally threw a fastball over the plate where someone could hit it."
It was nearly the first nine-inning no-hitter pitched in Philadelphia since April 17, 1969, when Montreal's Bill Stoneman blanked the Phillies, 7-0, at old Connie Mack Stadium.
Montreal's Pascual Perez pitched a rain-shortened, five-inning no-hitter as Montreal defeated the Phils at the Vet, 1-0, on Sept. 24, 1988.
It was the sixth consecutive win for Drabek, who raised his record to 14-4.
The loss went to the enigmatic Bruce Ruffin (6-11), who was shelled for five hits and five runs in 1 1/3 innings.
Ruffin was nearly taken out of the rotation a few weeks ago. The reason: A 15.13 ERA over three consecutive starts.
Ruffin was taken out of last night's game after he had retired only four batters. The reason: He resembled the pitcher who was nearly banished to the bullpen last month.
"In the bullpen, I felt I wasn't throwing well," Ruffin said. ''Everything was up. And it kind of carried over."
Ruffin, winless in his last six starts since July 2, started the game by walking Gary Redus on four pitches.
Shortly thereafter, things got worse. Much worse.
With one out, Andy Van Slyke walked. Then Jeff King ripped a two-run triple to right-center field - rightfielder Von Hayes bobbled the ball as he tried to retrieve it on the warning track.
After first baseman Carmelo Martinez fielded Barry Bonds' grounder and threw King out at home, Don Slaught and Bream delivered singles to make it 3-0.
Ruffin began the second inning as he did the first, with a walk, this one to Drabek.
One out later, Jay Bell singled. Then a run-scoring single by Van Slyke - who entered the game in a 10-for-17 tear - made it 4-0 and sent Ruffin to the showers.
It marked the fourth time in his last six outings that Ruffin had pitched three innings or less.
Pittsburgh tacked on another second-inning run on a Don Carman wild pitch.
The Pirates' assault continued in the third inning as Bream hit a two-run homer off Carman and Van Slyke added a run-scoring double against Jeff
Lind's second double of the game knocked in Bonds and made it 9-0 in the fourth. Bonds had stolen second - you never know when an 8-0 lead won't last - and continued to third on Daulton's errant throw.
The 9-0 lead turned into 11-0 when Van Slyke cranked a 2-1 Parrett pitch off the Budweiser sign - next to the right-field foul pole - with one out in the fifth.
It gave Van Slyke four RBIs on the night, matching a career best, and marked the fifth consecutive inning in which the Pirates had scored.
For the game, Drabek threw 112 pitches - 72 for strikes. He struck out five and walked just one.
"He was very efffective with his location," Herr said. "He was around the strike zone all night. As simple as that may sound, that's the key."