La rivière Mariakèche prend sa source à l'embouchure du lac Chez Josaphat (longueur : 0,4 km ; altitude : 350 m), situé dans la municipalité de Saint-François-Xavier-de-Viger, au cœur des monts Notre-Dame. Ce lac est situé à 23,3 km au sud-est du littoral sud-est de l'estuaire du Saint-Laurent, à 3,9 km au sud-est du centre du village de Saint-François-Xavier-de-Viger, à 2,0 km au sud du hameau Grandbois et à 9,8 km à l'est du centre du village de Saint-Hubert-de-Rivière-du-Loup. Le lac Chez Josaphat reçoit du côté ouest la décharge du lac de Vase.
À partir du lac de tête, la rivière Mariakèche coule sur 25,0 km à travers le massif des Appalaches, répartis selon les segments suivants :
2,6 km vers le nord, jusqu'à la route du 8e et 9e rang Est ;
9,7 km vers le nord, jusqu'à la limite de Saint-Clément ;
0,3 km vers le nord-ouest, jusqu'à la confluence du ruisseau Chaud (venant du sud) ;
1,0 km vers le nord, jusqu'à la confluence du ruisseau Léopold-Caron (venant de l'ouest) ;
4,1 km vers le nord, jusqu'à la confluence d'un ruisseau (venant du sud-est) ;
3,1 km vers le nord, jusqu'à sa confluence.
Note : À partir de la confluence du ruisseau Chaud, la rivière sert de délimitation entre les municipalités de Saint-Clément et de Saint-Paul-de-la-Croix. Tandis qu'en amont, le ruisseau Chaud sert de délimitation entre ces deux mêmes municipalités.
La rivière Mariakèche se déverse sur la rive ouest de la rivière des Trois-Pistoles face à une île située en amont du pont de la côte des Trois-Roches.