The 2004 winner in a playoff with Weir, Singh shot a 6-under 65 on Friday to finish the second round a stroke behind leaders Steve Allan and John Mallinger.
Weir nearly missed the cut for the second straight year and 11th time in 16 starts in the national championship. The Canadian followed his opening 71 with a 70 to qualify for weekend play by a stroke at 1 under.
'It was a struggle all the way around,' the 2003 Masters champion said. 'I'll go to the range and try to figure it out. I've got to play really well to get back into this thing. You never know when your game can come around.'
Allan added a 68 to his opening 64 to match Mallinger (66) at 10-under 132 on Angus Glen's North Course. Tripp Isenhour (68) joined Singh at 9 under.
'I've been playing well, but just haven't cracked the big finish,' said Allan, a 33-year-old Australian who won the 1998 German Open and 2002 Australian Open.
Allan birdied the par-3 17th, hitting his tee shot within inches on the 206-yard hole, and saved par on the par-4 18th with a 10-foot putt.
'It's generous off the tee and I'm driving it well,' Allan said.
Mallinger had five birdies in his bogey-free round.
'My driving's been great this week,' Mallinger said. 'When you drive well here you get some good looks at the pins.'
Singh made a 40-foot putt from just off the green on the par-3 14th to reach 8 under, and briefly tied Allan for the lead with a two-putt birdie on the par-5 15th. The three-time major champion also made a 25-footer for par on 17.
'I'm looking forward to playing a solid weekend,' Singh said. 'Win or lose, I'll got out there and try to play my game.'
The 44-year-old Fijian won the season-opening Mercedes-Benz Championship and the Arnold Palmer Invitational in March to push his PGA Tour victory total to 31. He has won a tour-record 19 times since turning 40.
Ryan Palmer (67) and Michael Putnam (68) were 8 under, and defending champion Jim Furyk (66) was another stroke back along with Cliff Kresge (65), Doug LaBelle II (68) and Brandt Snedeker (68). Hunter Mahan, the first-round leader after matching the tournament record with a 62, shot a 74 to drop four strokes back at 6 under.
'It didn't feel the same out there,' Mahan said. 'It's still there somewhere. I'll try to work it out and get it going again this weekend.'
The top six players on the leaderboard played in fairly calm conditions the first two days, teeing off in the morning Thursday and afternoon Friday. The other half of the draw had tougher wind conditions in the afternoon Thursday and morning Friday.
'You'd expect to play in a little more wind than we did,' Allan said. 'We definitely had the good side of the draw.'
Furyk, the winner last year at Hamilton Golf and Country Club, shot his 66 in the morning after opening with a 69 in windy conditions Thursday afternoon.
'It got a little breezy for our second nine,' Furyk said. 'But much, much better conditions to score in than we had yesterday. ... I was on the good end of the tee times last week at the British Open. So, at the end of the year it all evens out.'
Snedeker also played in the morning.
'Scoring opportunities were out there,' Snedeker said. 'I took advantage of a few of them, but left some out there. ... Hopefully, I'll get hot with the putter over the weekend and we'll be up there and have something to say.'
Stephen Ames had plenty to say Friday, criticizing the course setup after his 69 left him seven strokes back at 3 under.
'It's still too soft,' said Ames, a recent Canadian citizen born and raised in Trinidad and Tobago. 'The whole golf course is very soft. I hope the wind picks up a bit and dries it out even more. Then maybe it will be a sterner test instead of a putting competition, which it what it is right now.'