SAN DIEGO -- Will Venable hit a two-run, walk-off single with one out in the bottom of the 12th inning Monday night, giving the San Diego Padres a 6-5 win over the Kansas City Royals at Petco Park.

After Kansas City broke a 4-4 tie with a run in the top of the 12th, Padres outfielder Chris Denorfia opened the bottom of the inning with a single, and he moved to third on first baseman Yonder Alonso's bloop double to left.

Venable lined a single over the head of Royals right fielder Lorenzo Cain to give the Padres their second walk-off win in as many games.

Royals reliever Tim Collins (0-2) retired just one batter and took the loss.

Third baseman Mike Moustakas singled home catcher Salvador Perez with two out in the top of the 12th to give Kansas City a 5-4 lead. Perez doubled with one out off right-hander Tim Stauffer, the seventh relief pitcher used by the Padres.

Stauffer (1-0) struck out left fielder Alex Gordon before Moustakas, who was hitting .149, lined a sharp single to right. Perez beat the throw of Padres right fielder Denorfia to the plate.

Padres second baseman Jedd Gyorko tied the game at 4-4 with a 401-foot solo homer to left off Royals closer Greg Holland with one out in the bottom of the ninth. It was Gyorko's second homer in three days and his third of the season.

Royals first baseman Eric Hosmer homered off Padres reliever Nick Vincent with one out in the seventh to give the Royals a 4-3 lead.

The Padres tied the game an inning earlier when catcher Yasmani Grandal hit a three-run off Royals right-handed starter Yordano Ventura.

Ventura allowed only two hits before Padres shortstop Everth Cabrera singled with one out in the sixth. Left fielder Seth Smith doubled and Grandal pulled a 1-2 curve from Ventura 415 feet into the right field seats. Ventura struck out a career-high 10 hitters and gave up three runs in six innings.

The game featured a stark contrast in pitching styles.

Ventura's fastball topped out at 99 mph on the Petco Park radar gun, and his changeup had more velocity than some of the fastballs thrown by San Diego left-hander Eric Stults, who threw one curve at 64 mph.

The Royals scored first, but took only a 1-0 lead in the second despite getting four hits.

Perez opened the inning with a liner to left that skipped past Smith in left field for a double. Smith had charged the liner in an unsuccessful attempt to make a sliding catch.

With one out, third baseman Danny Valencia drove in Perez with the first of three straight singles that loaded the bases. Stults pitched his way out of that jam.

However, Stults couldn't get out of the next jam that Ventura started with his first major league hit -- a single to left -- leading off the fourth.

Right fielder Nori Aoki followed with a single through the right side, and both runners advance on Omar Infante's deep drive to Smith in left. First baseman Eric Hosmer followed with a two-run single. A diving stop by Padres second baseman Jedd Gyorko prevented the Royals from padding their 3-0 lead.

Stults lasted only 4 2/3 innings while allowing three runs on 11 hits. In his past two starts, Stults pitched a total of 7 1/3 innings while giving up eight runs on 18 hits.

NOTES: The Padres promoted 1B/OF Kyle Blanks from Triple-A El Paso and designated 1B/OF Xavier Nady for assignment. Blanks ranked second in the Pacific Coast League with nine homers. Nady led Padres with three homers but was hitting .135. ... The Royals activated OF Lorenzo Cain from the disabled list and optioned INF/OF Jimmy Paredes to Triple-A Omaha. Cain was out since April 16 with a left groin strain. ... Padres 3B Chase Headley (calf) went 1-for-3 with a double, a walk and two RBIs in his first rehab outing with Class-A Lake Elsinore. ... The Padres (16) and Royals (12) entered the game with the two lowest home run totals in the major leagues.