En été, le porc-épic mange des feuilles et des bourgeons de peupliers faux-tremble, de bouleau blanc et de saule. Il consomme également des plantes aquatiques (nénuphars et sagittaires). Son menu comporte aussi des plantes terrestres (herbacées, graminées, framboisiers) et des noix (glands et faînes).
Occasionnellement, il s’attaque aux jardins et fait des ravages dans les cultures de maïs.
En hiver, le porc-épic se nourrit de l'aubier (la partie tendre du bois, juste en dessous de l’écorce interne) de conifères (épinette, pins, mélèzes) et de feuillus (érables).
Toujours à la recherche de sel, le porc-épic grignote volontiers les bois de cervidés et les os qu’il trouve sur le sol. Comme il est friand de sel, il peut même s’attaquer aux objets qui ont été en contact avec la sueur ou l'urine humaine (avirons, manches d'outils, chaussures, pneus etc.).