The last two weeks have been filled with highs and lows for Ryan Howard.

This was most definitely a high.

Howard capped a terrific at-bat -- “A battling at-bat,” manager Ryne Sandberg said -- with a grand slam in the bottom of the eighth inning to lift the Phillies to a 6-5 win over the Houston Astros at Citizens Bank Park on Thursday night.

Howard’s 18th homer of the season and team-record 13th grand slam came with two outs in the inning against lefty Tony Sipp. It capped a five-run rally, got emergency starter Sean O’Sullivan off the hook as he was staring at a loss, and gave the Phillies a three-game sweep of the Astros.

“Howie comes through huge like that and it’s a happy clubhouse at the end of the night,” said O’Sullivan, who earlier in the day was summoned from Toledo, Ohio, where he was with the Triple A Lehigh Valley club, to make the start after Roberto Hernandez was traded to the Dodgers. “At the end of the day, all that matters is that we got the W.”

The clubhouse wasn’t the only happy place.

In the seats, 26,609 fans were also pretty happy when Howard connected off Sipp. They pushed Howard around the bases with a standing ovation then lured him from the dugout with a curtain call, quite a different scene than the boos Howard heard when he was struggling in June and landed on Sandberg’s bench for three days.