Two of the victims were police officers, officials say.
The incident took place in Quinta do Conde, 18 miles south of the capital Lisbon.
A 77-year-old man is said to have opened fire after a row over a barking dog.
The man reportedly tried to take his own life with a hunting rifle and was arrested and taken to hospital.
A plainclothes officer who lived in the area was shot dead as he ran to investigate the row, and a patrol officer then called to the scene was shot in the head and killed.
The third victim was reportedly the son of the plainclothes officer who was trying to help his father.
The son was seriously injured in crossfire and died of his wounds in hospital.
One neighbor told the Lusa news agency the gunman had threatened to kill a neighbor if the dog did not stop barking “but it never crossed our mind he would try to do it”.
Misleading allegations, rumours and outright lies about voting and fraud are flooding online spaces in…
At least 158 people have died in Spain's worst flooding disaster in generations. On October…
Google has been fined two undecillion (a two followed by 36 zeroes) roubles by a…
Embarking on a home remodel is an exciting journey, promising enhanced comfort, increased property value,…
The US presidential candidates continued to campaign across key swing states on October 20. Footage…
Elon Musk has said he will give away $1 million a day to a registered…