The deal includes a 20 percent sell-on clause and matching rights for City on any future offers, reflecting the champions' belief in Bobb's long-term potential.
Bobb joins at an important time for Marco Silva's side as they push for European places and reshape their wide options following Adama Traore's departure, while Harry Wilson's future remains uncertain.
After completing the move, Bobb said conversations with Norway team-mate Sander Berge and Silva helped convince him, describing Fulham as a club with strong players and a clear identity.
Silva labelled the signing a strong long-term investment, backing Bobb to grow into a key player while stressing the need to rebuild his physical condition after injury setbacks. The Fulham boss also highlighted Bobb's importance to Norway, where he is viewed as a regular starter ahead of the upcoming World Cup.
Vice-chairman Tony Khan called Bobb an exciting addition aligned with the club's plans to maintain momentum this season and build for the future.
Bobb ends a six-year spell at City after joining from VÃ¥lerenga in 2019. He made 47 senior appearances, scoring three goals and providing four assists, but struggled for consistent game time after a broken leg ruled him out for most of last season and increased competition limited his chances this campaign.
His last appearance came in December's Carabao Cup tie against Brentford before injury forced him off early.
City assistant manager Pep Lijnders praised the move as a positive step for Bobb's development, while interest from several Premier League and Bundesliga clubs highlighted his value before Fulham secured the transfer.
Bobb now joins an attacking group including Raul Jimenez and Emile Smith Rowe as Fulham look to strengthen for the second half of the season.