CHICAGO – Adrian Peterson rushed for 100 yards Sunday, but the reigning NFL MVP said he needs to do some "soul-searching" after falling short of his lofty standards in the Vikings' 31-30 loss to the Chicago Bears at Soldier Field.

Peterson finished with 100 yards on 26 carries with no touchdowns. He fumbled once. His 3.8-yard average included a 36-yard run.

Peterson described himself as "hesitant" and said he didn't attack the defense like he normally does.

"I can't do that," he said. "I need to come and press these guys. I need to force those guys to tackle me. I have to do a lot of soul-searching and come back better than I was."

Peterson fumbled on the Vikings' first possession of the second half near midfield. Bears nose tackle Nate Collins knocked the ball loose and Corey Wootton recovered it.

"I tried to scratch for extra yards and got loose with the ball," Peterson said. "That was a giveaway from my point of view. I can't do that."

Fast start

Cordarrelle Patterson showed off his big-play capability by returning the opening kickoff 105 yards. That tied Percy Harvin's team record, set last year in Detroit, for longest kickoff return.

The Vikings blocked Patterson's return perfectly and he did the rest.

"I couldn't have asked for anything better," he said. "I saw a big hole. There's no way I could have missed it. I ran right through it and touchdown."

Bears star returner Devin Hester answered Patterson's return with a 76-yard return. Hester set a franchise record with 249 yards on five kickoff returns in the game.

"I was coming into the game and thinking about him" Patterson said. "Every time he touched the ball it motivated me to get a good drive."

Williams sets records

Veteran defensive tackle Kevin Williams returned after a one-game absence because of a right knee injury. He made his 157th start, tying Alan Page's team record for career starts by a defensive tackle.

Williams intercepted a Jay Cutler pass in the end zone in the second quarter on a ball that was tipped at the line by Everson Griffen. It was Williams' fifth career interception and his first since 2007 against San Francisco. His five interceptions are a team record for defensive linemen.

Williams missed only his third game in 11 seasons because of injury last week. He said his knee was not a hindrance Sunday.

"I did fine," he said. "I tweaked it at the end. Other than that, it's fine."

Rough day for Sanford

Vikings safety Jamarca Sanford had a particularly tough day. It began when he got caught on a pick play on Chicago's first touchdown. Sanford was lined up on tight end Martellus Bennett. Wide receiver Alshon Jeffery picked Sanford off the line, giving Bennett enough clearance to catch a 1-yard touchdown pass.

Later in the first quarter, Sanford looked slow to rotate over and provide help to Chris Cook on Brandon Marshall's 34-yard touchdown catch.

Sanford's unnecessary-roughness penalty late in the second quarter proved costly because it gave the Bears free yards in their two-minute drill. The Bears ended the drive on a Robbie Gould 20-yard field goal at the halftime gun for a 24-21 lead.

Sanford also was in coverage on Matt Forte's 13-yard catch on third-and-2 in the third quarter.

Red-zone blues

Vikings kicker Blair Walsh went 3-for-3 on field-goal attempts. That's the good news. The bad news is that all three were less than 30 yards.

The Vikings finished 0-for-3 in red-zone opportunities. They had the ball first-and-goal from the 6 on their final drive but had to settle for a 22-yard field goal.

"We've got to finish in the red zone," center John Sullivan said. "We score at the end [of the game] to go up 10, we're in here celebrating."

Etc.

• Jared Allen had an active game. He was credited for six tackles, two tackles for loss, one sack and a forced fumble.

• Rookie punter Jeff Locke had a better showing after shaky debut in Detroit. Locke averaged 56.7 yards on three punts, including two downed inside the 20.

• Linebacker Desmond Bishop saw his first action after not playing in the opener.