Rory McIlroy narrowly avoided missing the cut at the Deutsche Bank Championship after carding a second round 71.

A seven at the last left him teetering on the brink at one under, but it was just enough to make sure he will be in action on Sunday and Monday.

However, the 24-year-old is 12 shots adrift of the half-way leader Sergio Garcia who signed off with a majestic 64 to leave him at 13 under.

Graeme McDowell finished on four under after a round of 66 that included birdies on the closing two holes. 

Garcia followed up an opening round of 65 at TPC Boston with an almost nerveless display of golf, carding seven birdies before his only blemish of the day with a double bogey on the par-four 14th.

However, that was forgotten on the final hole where Garcia sank an eagle to put himself a shot clear of Roberto Castro and Henrik Stenson.

American Castro enjoyed his second successive score of six-under 65, beginning the day with an eagle on the par-five second and following up with five birdies to complete the front nine in 29.

The return was more inconsistent with a bogey, a double bogey and two further birdies but Castro nevertheless ensured his place among the leading pack alongside Stenson, who was also on song on Saturday.

The Swede bettered Garcia's round with a score of 63 on Saturday, collecting eight birdies to climb within touching distance of the leader.

Matt Kuchar and Jason Dufner were tied for fourth on 10 under, with both players completing their rounds in 66, while Justin Rose was among the biggest movers of the day, carding an eight-under 63 which lifted the US Open champion 51 places to nine under overall.

Joint overnight leaders Phil Mickelson and Brian Davis failed to build on their promising starts, however.

Reigning Open champion Mickelson sank four birdies but two bogeys and a double bogey on the 16th saw him remain on eight under overall, his score from the opening round, while Davis finished the round in one-over 72 to sit a shot further back alongside Tiger Woods.