ST. PETERSBURG, Fla. -- J.J. Hardy had the big hit, but gave most of the credit for a series victory to Baltimore's starting pitching.
Jake Arrieta (5-1) allowed two runs and four hits over six innings for the Orioles, who took two of three from Tampa Bay. The right-hander has won a career-best four consecutive decisions.
"The starting pitching, it's where it all starts," Hardy said. "Our guys have been doing great."
"They, kind of, answered a challenge of going deep into games," Orioles manager Buck Showalter said. "Considering the opposition, it's pretty impressive."
The Orioles loaded the bases in the sixth with no outs as Rays reliever Rob Delaney walked all three batters -- one intentionally -- he faced. Hardy then put Baltimore up 8-2 when he hit his third career grand slam on a 2-0 pitch from Cesar Ramos. It was Hardy's first grand slam since May 12, 2007 while with Milwaukee against the New York Mets.
The Orioles (19-20) didn't reach 19 wins last season until June 19th, when their record was 19-49.
"We're playing with some confidence right now," Hardy said after Baltimore won for the fifth time in six games.
Joyce, who entered hitting an AL-best .360, went 2 for 3 with a walk one day after leaving the game with cramping in his right quadriceps. He hit his sixth homer this season in the eighth, which helped his average climb to .368.
"There were a lot of big plays," Showalter said.
Johnson cut the Rays' deficit to 3-1 with his first major league homer in the third. Casey Kotchman made it 3-2 on a fourth-inning RBI single.
Tampa Bay has not scored more than five runs in any of its 22 home games, which is the longest stretch to open a season since the 1908 Brooklyn Superbas.
"It's no fun," Rays manager Joe Maddon said. "I've really tried to analyze it and think it all the way through, and I have no idea. It's just strange."
Matt Wieters put the Orioles ahead 1-0 with a two-out, RBI single in the second. He is 9 for 14 this season with runners in scoring position and two outs.
Baltimore's Mark Reynolds had an RBI single in the ninth.
Sonnanstine, filling in for the injured Jeff Niemann, gave up four runs and eight hits in five innings. Niemann, on the 15-day disabled list because of a strained lower back, is making progress, but has not started a throwing program.
Maddon would not commit to Sonnanstine staying in the rotation.
"I'm not ready to say one way or the other right now," Maddon said. "This is something we definitely have to look at, there's no question."
Rays LF Sam Fuld left the game with a cut upper lip, which occured on a stolen base attempt in the seventh. The cut required two stitches. ... Tampa Bay will play the New York Yankees for the first time this season Monday night in the opener of a two-game series. ... Orioles LHP Brian Matusz, who has been on the DL all season because of a strained ribcage muscle, is scheduled to throw around 60 pitches in his first rehab start for Class-A Frederick on Monday.