Roche est un village de l'est vaudois, situé plus précisément dans la région du Chablais vaudois. Son altitude est de 387 mètres. Il se trouve à l'endroit où l'Eau-Froide descend dans la plaine du Rhône, au pied de l'extrémité sud-est de la chaîne du Mont d'Arvel, face à la large pyramide du Grammont. Roche bénéficie d'une situation particulièrement abritée.
Son territoire, d'une superficie de 646 hectares, est entouré par les communes de Corbeyrier, Yvorne, Chessel, Noville, Rennaz et Villeneuve, qui font toutes partie du district d'Aigle. Les habitants de Roche sont appelés les "Rotzérans".