Blackburn Rovers 4 Bolton Wanderers 1
Gretar Steinsson was harshly adjudged to have brought down David Dunn for the first, as Mark Hughes' side led 1-0 at the break.
Ex-Rover Kevin Davies fired the visitors level less than five minutes into the second half but another foul on Dunn inside the box gave McCarthy the chance for his second.
Dunn, who almost joined Bolton just over a year ago, completed his hat-trick of assists when he crossed for David Bentley to head home, before Morten Gamst Pedersen completed the rout in time added on with his first league goal in over a year.
Straight from kick-off, Rovers almost took the lead. With just 10 seconds on the clock, a high ball forward to Pedersen dropped kindly for McCarthy and the South African striker's dipping volley had to be palmed away by Jussi Jaaskelainen.
Nine minutes later and the visitors had an even better opportunity to open the scoring. A long throw into the box was flicked on by Davies and El Hadji Diouf's first-time shot forced a brilliant reaction save from Brad Friedel.
Rovers were playing the better football and duly made their pressure count just past the midway point of the half.
After some neat McCarthy skill, Dunn broke into the box ahead of Steinsson. The Icelandic defender appeared to play the ball before the man but referee Mark Clattenburg pointed to the spot. McCarthy stepped up and drilled the ball home.
Bolton almost drew level six minutes before the break. Diouf skipped past Chris Samba before seeing his one-on-one with Friedel well saved, whilst Kevin Nolan hit the bar on the rebound with the goal gaping.
Gregorz Rasiak replaced Danny Guthrie at the interval and the substitution almost paid immediate reward. Just four minutes into the second-half, Davies centred for the Polish striker to score, but he was denied by the linesman's offside flag.
However, just a minute later the visitors were level. Ivan Campo played a long free-kick into the box, Davies' initial effort was blocked, but he made no mistake on the follow-up, driving the ball low past Friedel.
The American goalkeeper was twice forced to come to Rovers' rescue shortly after, keeping out well-struck shots from first Nolan and then Gary Cahill, as Bolton started to grow in confidence.
Against the run of play, Rovers restored their lead. Dunn was again brought down inside the box, this time by Cahill, and McCarthy scored his second spot-kick of the afternoon, blasting the ball high into the roof of the net.
Buoyed by the goal, Rovers went and added a third. Dunn made an excellent break down the left before delivering a pin-point cross to the back post where Bentley was waiting to head home from a tight angle.
As the 90-minute mark approached, Ricardo Gardner was denied by another fine Friedel save, before Rovers went up the other end and added their fourth.
Substitute Jason Roberts played the ball across the box from the right and Pedersen fired home at the far post with virtually the last kick of the game.