Steve Bedrosian pitched the final two innings to earn his 27th save of the season.
Madrid, picked up from Milwaukee for outfielder Mike Young in August, has at least positioned himself to have a chance to pitch his way into the Phillies' rotation next spring.
In two starts, spanning 12 innings, he has allowed two runs and eight hits.
Overall, in five appearances, his earned run average is 2.76.
"He did a fantastic job," interim manager John Vukovich said. "He pitched ahead in the count, he went after people.
"I don't like to speak for (general manager) Lee Thomas. But I do know that he has impressed Lee Thomas and the rest of the management to this point.
"How much he enters into the plans for the future remains to be seen. But there has been talk he might enter in. And he only helped himself with this game."
Said Madrid, who notched his first major league win: "It wasn't that I was glad to get out of the Milwaukee organization, but the Phillies are giving me a new shot. Milwaukee had found the pitchers they liked, and they have a bunch of good guys in Triple A right behind them.
"I haven't talked to anybody, so I'm not sure exactly how I fit into any
plans the Phillies might have. I'd like to be a starter. But if it's in my best interest to go to the bullpen, I'll go to the bullpen."
It was the Phillies third consecutive win, the first time they've managed to accomplish that modest feat since Aug. 12.
In the utter absence of any other apparent significance coming into this game - the Expos had just clinched third place in the National League East and the Phillies locked up last long ago - the focus turned to Montreal starter Pascual Perez.
Could he "complete" his no-hitter, started a week earlier?
And would he win a cow from his brother, Melido, who pitches for the Chicago White Sox?
First things first. A week ago tonight at Veterans Stadium, Perez pitched a five-inning no-hitter against the Phillies in a game then called by rain.
So, the reasoning went, if Perez could hold the Phils hitless for four innings last night, it would validate his accomplishment, at least in the minds of observers.
He came within six outs.
But Chris James led off the third with his 18th home run of the year, and that was that.
That's a career high. James leads the Phillies in homers, and if he doesn't hit another in the final two games of the year, it will be the lowest total to lead the team since Greg Luzinski did it with 18 homers in 1972.
The Expos came back to tie the score against Madrid with some textbook baseball in the bottom of the third.
The No. 8 hitter, shortstop Jeff Huson, led off with a double into the rightfield corner. Perez dropped a perfect bunt that advanced Huson to third and allowed him to tag up and score easily on Otis Nixon's sacrifice fly to left.
The Phillies reclaimed the lead on a gift run in the top of the fifth.
Ron Jones opened the inning by lifting a routine fly to rightfield. Routine, that is, except that converted shortstop Hubie Brooks first broke in on the ball, then scrambled backward as the ball carried over his head for what was charitably scored a double.
Lance Parrish couldn't advance the runner; he grounded out to third. James followed with another grounder to third that should have been the third out of the inning, but Tim Wallach's throw bounced in the dirt and away from first baseman Wallace Johnson.
Jones scampered to third after the ball came loose and scored on Steve Jeltz's sacrifice bunt.
It ended up being Jeltz's first game-winning RBI of the year.
"We took advantage of a couple breaks," Vukovich admitted.
As it turned out, Perez allowed only those two hits, one tainted, in seven innings before being lifted for a pinch-hitter. Since the Expos trailed, though, it meant he ends his season with 12 wins.
Melido, who starts against Kansas City today, has 11 wins. So that becomes a big game. The brothers wagered a cow before the season to go to the one who won the most games.
INS AND OUTS
Pitcher Bruce Ruffin stayed behind when the team flew to Montreal Thursday night. He's driving his family to Texas, then will join the Florida Instructional League in the middle of next week to try to figure out why he has been unable to throw strikes consistently in the last half of the season.
Also not accompanying the team to Montreal was catcher Lance Parrish. He stayed behind, just in case his much-speculated-upon trade to the California Angels went through. It didn't, and Parrish took a commercial flight that got him to the team hotel early yesterday afternoon in time to go 0-for-3 last night. The whisper is that the deal has been hung up because Parrish wants more money on a new contract than the Angels are willing to offer.
It could be nothing more than a negotiating tactic, but Jack Clark was quoted in a certain national happy-talk newspaper yesterday as saying that he'd rather stay in New York than go to a team like the Phillies. This is the same Clark who is so unhappy in Steinbrennerland that he has formally asked to be traded. Also the same Clark many seem to think would be a fine addition for the Phils.
They don't keep records on this sort of thing, but it might be a record that a total of 13 feet and five inches of pitcher will start tonight. It will be 6-7 Marvin Freeman for the Phillies vs. 6-10 Randy Johnson for the Expos.
Montreal still hasn't figured out who will start tomorrow in the regular- season finale. It will be Don Carman for Philadelphia. The Expos had planned to start Brian Holman, but he's having arm problems. If he can't go, manager Buck Rodgers might just use several pitchers for an inning or two each.