The game featured an exchange of hit batters that led to the dugouts emptying in the ninth. Only minor shoving matches ensued.
Joyce gave Tampa Bay a 4-1 lead with his ninth homer of the year and the Rays then came up with solo shots in the fourth from Elliot Johnson and Carlos Pena.
Tampa Bay won its third in a row and kept the Red Sox in last place in the American League East.
With the Rays owning a 7-1 lead in the sixth, a pitch from Tampa Bay's Burke Badenhop hit Dustin Pedroia in the back. The retaliation came in the ninth when Franklin Morales hit Luke Scott in the right knee.
Scott then exchanged shoves with Boston catcher Jarrod Saltalamacchia, bringing players from both sides onto the field.
Alex Cobb (2-0) lasted five innings to get the win, giving up a run on three hits.
All of the Tampa Bay runs were charged to Jon Lester (3-4), who left after four innings.