His return is doubtful, according to team officials.
On third down of the opening possession of the game, Winston took a hit from Cardinals outside linebacker Chandler Jones and fell awkwardly onto his right shoulder.
After the offense left the field, Winston was seen tossing the ball on the sideline to try to loosen his arm up, and he briefly returned to action.
He went 5-of-10 for 61 passing yards, no touchdowns and no interceptions as the Cardinals jumped out to a 24-0 lead.
Winston has started all 36 games for the Bucs since 2015 and has never missed a game because of injury.
Backup Ryan Fitzpatrick stepped in for Winston in the second quarter.