The Reds clubbed five singles and got no free passes until there were two outs in the ninth.
The Reds once got two hits in an inning but Dave Sappelt was thrown out stealing by Carlos Ruiz in the fourth as Joey Votto struck out on a 3-2 pitch.
The other three were spaced out.
Stubbs had two in as many at bats but eight straight were retired in between.
Willis pitched "good, real good," as Phillies manager Charlie Manuel is fond of saying.
He now has seven quality starts among his nine for the Reds but dropped to 0-3.
"I like the way I'm playing," Willis said. "I could play a lot better. I'm not frustrated. I don't have a 'W". Guys on the other side of the diamond are pitching well. So I'm not frustrated especially where I came from. I like being in those type of games anyway."
His problem was five walks and one home run ball to Hunter Pence.
"I've walked guys before and they didn't score. I just have to make better pitches. When I walk a guy I forget about it and move on," Willis said.
"Not only did we not score but two leadoff walks scored," Dusty Baker said. "When you have pitching like they do, every run they score is huge. Their pitching staff gets paid what our whole payroll is. They earn their money."
Shane Victorino and Placido Polanco both walked to start the game. Two force plays got Victorino home. The last being a botched double play as Brandon Phillips tried to cover first with Willis being late to get there. Phillips had the relay from Paul Janish in plenty of time but missed the base and big Ryan Howard barreling down the line.
Willis accepted the blame.
"It was a miscue on my part," Willis said. "I should call off Brandon and we got there at the same time. It was a brain miscue. I needed to call him off to make sure he didn't feel like he had to get there."
Pence hit a home run in the sixth.
Victorino led off the seventh with a walk. Polanco singled him to third. Chase Utley's force play allowed Victorino to score the Phillie's third run.
There were two outs and the bases empty. Lee was one out away from his mind boggling sixth complete game shutout of the season.
Votto hit a double over Victorino's head in center field. Lee issued his only walk of the game to Jay Bruce. Cairo came up next. He fouled off the first two pitches but Lee hit him in the lower leg with a breaking ball to load the bases.
Phillies skipper, Charlie Manuel, brought on Ryan Madson to pitch to Drew Stubbs. Dusty Baker countered with Yonder Alonso. Alonso fouled out to Polanco at third, giving Madson his 25th save.