Lilly (7-8) struck out 11 and walked a pair en route to his third career shutout and first since 2004. The veteran lefty has been a revelation since coming over in a trade with the Cubs, winning each of his four starts with Los Angeles while pitching to a 1.29 earned run average.
LA has won 10 straight series against the Rockies and has shut them out in three of their last four games at Chavez Ravine. Colorado has alternated wins and losses in each of its 16 games in August.
Jorge De La Rosa (4-4) was the hard-luck loser, yielding five hits and four walks over a seven-inning start, his lone error being a hanging changeup in the second inning that Johnson drove into the left-field bleachers.
That homer, which was a two-run shot thanks to Casey Blake working a walk ahead of the blast, was all Lilly needed, as his lone blemish in the first seven frames was Dexter Fowler's one-out double in the opening frame.
Lilly set down 19 straight from there, shook off Troy Tulowitzki's two-out single in the seventh and retired three in a row after walking Todd Helton to open the eighth.
Facing the top of Colorado's order in the ninth, Lilly walked Eric Young Jr. before getting Fowler to bounce into a tailor-made 4-6-3 double play.
Fittingly, the 34-year-old froze Ryan Spilborghs on an 0-2 sinker to finish off his masterpiece.
Lilly, who needed 110 pitches to notch his fifth career complete game, had three wins in 18 starts with Chicago this year. His last shutout came on August 23, 2004 against Boston while he was pitching for Toronto...Johnson's homer was his first since June 19, 2009...Rockies catcher Miguel Olivo was ejected by home-plate umpire Laz Diaz in the eighth inning after he slammed his bat following a called third strike...Ryan Theriot had two of LA's five hits...Before the game, Colorado released outfielder Brad Hawpe, who has spent his entire seven-year career with the club...LA also made a roster move, placing pitcher Vicente Padilla on the 15-day disabled list with a neck injury.