Начал заниматься футболом в школе клуба «Торсбю». В 2003 году перешёл в юношескую команду ИФК «Гётеборг». В основном составе «Гётеборга» дебютировал 10 апреля 2005 года в матче первого тура чемпионата Швеции против «Мальмё», выйдя на замену в компенсированное время. 8 августа 2005 забил свой первый гол в чемпионате, поразив ворота «Хельсингборга». В сезоне 2007 стал игроком стартового состава и забил 14 голов в 17 матчах.
10 августа 2007 года Берг перешёл в «Гронинген» за 2,5—4 млн евро. Первый матч в составе своей новой команды провёл 18 августа против «НАК Бреда». Первый гол за «Гронинген» забил 2 сентября в ворота «Аякса», причём оформил дубль. В своём первом сезоне в Нидерландах забил 15 голов в 25 матчах чемпионата, а также 3 гола в четырёх играх плей-офф. По итогам сезона «Гронингену» не удалось пробиться в еврокубки. Летом 2008 года Бергом интересовался французский клуб «Нанси», однако «Гронинген» отклонил предложение ценой около ?10 млн.
Хорошо начал сезон 2008/09, забив в первых 5 турах 5 мячей. В матче 16 тура против «Роды» провёл 4 гола (2 с игры и 2 с пенальти), матч завершился со счётом 2:5. После первого круга на счету Берга были 13 мячей в 16 играх. Всего в сезоне 2008/2009 забил 17 мячей в 31 матче высшего дивизиона, что позволило Бергу занять 3-ю строчку рейтинга бомбардиров, а также 5 мячей в 4-х играх плей-офф. «Гронинген» вновь не попал в европейские кубки.
18 июля 2009 года Берг перешёл в немецкий «Гамбург» и подписал контракт на 5 лет. Играет в клубе под 16 номером. Первый официальный матч за «Гамбург» провёл 6 августа 2009 года в Лиге Европы против датского клуба «Раннерс». Первый гол за «Гамбург» забил 20 августа 2009 года в ворота французского «Генгама», также в Лиге Европы. В первой половине сезона 2009/10 Берг был игроком стартового состава. Этому способствовали травмы его конкурентов, Хосе Паоло Герреро и Младена Петрича. В январе 2010 года «Гамбург» приобрёл Руда ван Нистелроя, и после этого Берг «выпал» из стартового состава.
21 июля 2010 года «Гамбург» отдал Берга в аренду сроком на один сезон нидерландскому клубу ПСВ. В составе ПСВ Берг присоединился к своим соотечественникам и партнёрам по сборной Исакссону и Тойвонену. Первый официальный матч за ПСВ провёл 7 августа 2010 года, против «Херенвена». 22 августа 2010 года открыл счёт своим голам за ПСВ, сделав «дубль» в ворота АЗ. 24 сентября 2010 года Королевский футбольный союз Нидерландов дисквалифицировал Берга на 4 матча, поэтому Берг не играл в чемпионате Нидерландов с 19 сентября до 27 октября 2010 года. Жонатан Рейс, заменивший дисквалифицированного Берга, набрал отличную форму и забил в трёх матчах 6 голов. Когда дисквалификация Берга закончилась, Фред Рюттен продолжил выпускать в стартовом составе Жонатана Рейса, а не Берга. 19 декабря 2010 года Жонатан Рейс получил очень тяжёлую травму и выбыл из строя до конца сезона. Единственным конкурентом Берга остался 32-летний Денни Куверманс.
Агентом Маркуса Берга является Сёрен Лербю.
Выступал за молодёжную (до 21 года) сборную Швеции. Дебютировал в молодёжной сборной 28 февраля 2006 года в товарищеском матче с командой Ирландии. Участвовал в молодёжном чемпионате Европы 2009. В первом матче группового этапа против сборной Белоруссии забил 3 гола, сделал «дубли» в ворота сербов и англичан и с семью забитыми голами стал лучшим бомбардиром турнира. Был признан лучшим игроком чемпионата.
6 февраля 2008 дебютировал в сборной Швеции в товарищеском матче против команды Турции, отыграв все 90 минут. 10 июня 2009 года забил первый гол за сборную, в ворота сборной Мальты, матч завершился победой шведов со счётом 4:0. В отборочном турнире чемпионата мира 2010 был дублёром Хенрика Ларссона и Юхана Эльмандера, забил 2 гола.
ТМ — товарищеский матч, ОЧМ — отборочный матч Чемпионата мира 2010, ОЧЕ — отборочный матч Чемпионата Европы 2012
(откорректировано по состоянию на 11 апреля 2011)