Ian Kennedy pitched eight dominant innings to become the NL's first 20-game winner, Justin Upton hit a broken-bat homer and Arizona moved a step closer to its first NL West title in four years with a 1-0 victory over the Pittsburgh Pirates on Monday night.