Trailing by five goals at quarter-time against the finals-bound Tigers, the Blues fought back strongly after the first break on Saturday to triumph 16.10 (106) to 14.12 (96).
Tough onballers Mitch Robinson and Brock McLean were dominant for the Blues who improved their win-loss record to 10-10 after starting the round two victories outside the top eight.
Carlton play top-eight sides Essendon and Port Adelaide in the last two rounds.
Richmond skipper Trent Cotchin was held to 14 disposals by tagger Ed Curnow while star forward Jack Riewoldt (two goals) appeared to hyper-extend his knee early in the final term but managed to play out the match.
Brett Deledio, with a game-high 29 disposals, was influential for the Tigers who suffered their seventh loss for the season.
Richmond led by a massive 30-point margin at quarter-time after kicking 8.2 (50) to Carlton's 3.2 (20).
McLean, with three goals and 12 disposals, sparked Carlton's fightback on the second term as the Blues booted six goals to Richmond's two to trail the Tigers by only five points at halftime.
Big forward Levi Casboult's goal after the three-quarter time siren, Carlton's fourth major of the term, put the Blues three points ahead at the final change.
Carlton kicked three goals in the final term -- including a ripper from the boundary off the deck by Casboult -- to Richmond's two in a tense finale.
McLean, Casboult and Lachie Henderson kicked three goals each for Carlton while Ty Vickery booted three majors for the Tigers.
Dustin Martin had a quiet game for the Tigers in a week in which his management remained unable to come to terms with the club for next season.
Carlton host Essendon at the MCG next Saturday night while Richmond travel to Sydney to face the Giants the following day.
CARLTON 3.2 9.4 13.4 16.10 (106)
RICHMOND 8.2 10.3 12.7 14.12 (96)
Goals: Carlton - McLean, Casboult, Henderson 3; Gibbs, Menzel 2; Simpson, Robinson, Tuohy. Richmond - Vickery 3; Ellis, Riewoldt 2; Rance, Jackson, Maric, McGuane, Vlastuin, Petterd, Grigg.
Best: Carlton - McLean, Robinson, Simpson, Walker, Murphy, Curnow, Gibbs, Casboult. Richmond - Deledio, Jackson, Maric, Vickery, Grigg.
Umpires: Stuart Wenn, Stephen McBurney, Shane McInerney.
Official Crowd: 60,825 at MCG.