Nobody has yet claimed responsibility for the killings, which took place in Hangu district, Khyber Pakhtunkhwa province, which lies along the Afghan border.
Police blamed Taliban militants for the attack, saying they fired on a patrol party and fled.
"Taliban are active in this area and they are responsible for the attack," Hangu police chief Mian Mohammad Saeed told AFP by telephone, adding that three officers were killed.
Gul Jamal, another senior police official, confirmed the incident and blamed "terrorists" for the attack.
"We have cordoned off the area and have launched a search operation," Jamal said.