The 29-year-old, who moved to Carrow Road on loan in September, will sign a three-and-a-half-year contract on January 2.
The fee for Jarvis is undisclosed but is reported to be around Â£2.5million, meaning the Hammers have taken a big loss on a player they signed for a then club-record Â£10.75million in 2012.
Jarvis has made seven appearances for the Canaries so far and scored two goals, including one on his debut in a 3-1 victory over Bournemouth.
He told the club website: "I've really enjoyed my time here so far, so I'm delighted to sign on the dotted line.
"It's nice to get it done before the window opens as the club have shown they really wanted me
I had a great start here and hopefully I'll be back up-and-running soon for the rest of the season.
"My first game especially was great
To get out in front of the home fans and score in a win was a perfect start which carried on for a while.
"Unfortunately I then picked up an injury but I'm desperate to get back fully-fit, and back playing
To get the deal sorted is really nice and I'm looking forward to helping the team as soon as I can."
City boss Alex Neil added: "Matt is a good competitor and a good team player.
"He'll give us pace on the other flank which I don't think we've had
Only a few years ago he commanded a transfer fee of over Â£10million and as a player he has a lot to offer."
Source : PA