The visitors were ahead less than a minute into the match when George Ford chipped the ball forward for Anthony Watson, who found a gap before diving over.
However, Bath had a spell with just 14 players on the pitch when Dom Day was sent to the sin bin for a late tackle on Danny Cipriani, allowing Mark Jennings to pull a try back.
While a string of penalties from Ford kept Bath in front, Sale continued to press and edged ahead for the first time when Mark Easter forced his way through.
Sale thought that they had scored another a few minutes later to extend their advantage, but a forward pass in the build-up saw it disallowed.
The errors proved costly as Rokoduguni squeezed the ball over in the corner to put the visitors back in front inside the final 10 minutes, while another Ford penalty ended any hopes of a Sale comeback.