The ambush occurred at 6 a.m. in Manazlah, about 20 miles west of the oil-rich city of Kirkuk, as the bus was taking the employees to work at the Mullah Abdullah power station, Maj. Gen. Anwar Mohammed Amin said.
The gunmen were in two cars and sprayed the bus with bullets as they sped by it.
The five killed were engineers and other plant workers from the surrounding Beiji area, Amin said, citing information from soldiers at the site.
The attack came two days after a suicide truck bomber struck a police station in a Kurdish neighborhood in Kirkuk, killing 15 people, including a newborn girl and a U.S. soldier. Nearly 200 people were wounded.
Ethnic and religious tensions have been rising in the disputed city after the government adopted a plan to relocate thousands of Arabs who were moved to Kirkuk decades ago in Saddam Hussein's campaign to displace the Kurds.
The city, 180 miles north of Baghdad, also has seen a rise in violence blamed on militants who fled a U.S.-Iraqi security crackdown in Baghdad.
Two mortar rounds also slammed into a house in the predominantly Shiite town of Khalis, 50 miles north of Baghdad, just after midnight, killing a woman and wounding two other women and a 4-year-old boy, police said.
Another mortar attack struck a mainly Shiite area in eastern Baghdad, wounding five civilians and damaging some houses, police said.