Chris Brunt struck a free kick from the edge of the box which came off Olsson's leg and flew past the helpless David De Gea.
Baggies goalkeeper Boaz Myhill made a string of stunning saves, including save from a Robin Van Persie penalty, diving to his left to keep out the Dutchman's spot kick.
Tony Pulis' men put on a defensive masterclass to deny United and almost guarantee safety having moved onto 40 points.
Defeat, which was the first time United have lost three successive league games since 2001, leaves the Reds in fourth place with Champions League qualification still in doubt.
The first half was a timid affair as United struggled to find fluency with the Baggies set up to frustrate Louis Van Gaal's men.
Van Persie was making his first start since February and looked understandably rusty in attack but he had United's best opening when he side footed wide.
The game came to life in the 62nd minute when Paddy McNair clattered into Darren Fletcher 22 yards out and from the resulting free kick, Brunt's free-kick took a big deflection off Olsson in the wall and went high into the roof of the net.
Van Gaal immediately brought on Angel Di Maria for Daley Blind and within 10 minutes, United had a golden chance to level the match.
Saido Berahino was adjudged to have handballed in the penalty area but Myhill guessed correctly and made comfortable stop from Van Persie's shot.
Paddy McNair headed wide from a corner and Van Persie and Di Maria were both denied by excellent saves by Myhill in stoppage time.
The result gave the Baggies back-to-back victories at Old Trafford for the first time since 1959.
Invalid email
We use your sign-up to provide content in ways you've consented to and to improve our understanding of you. This may include adverts from us and 3rd parties based on our understanding. You can unsubscribe at any time. Read our Privacy Policy