The shooting took place at the London Pub, which describes itself on its website as “the biggest gay and lesbian venue in Oslo”.
“I saw a man arrive with a bag, he grabbed a gun and started shooting,” an NRK journalist said in the broadcaster’s report.
A suspect was detained nearby, but it’s not immediately clear what the motive for the attack was, the Reuters report said, citing local police.
Three people were seriously injured, police told reporters at the scene.
Oslo will hold its annual Pride parade later on Saturday.