Han ska även betala 300 000 kronor i skadestånd till kvinnan.
Hon fick flera knivhugg i överkroppen och kunde enligt Västmanlands tingsrätt ha dött om hon inte snabbt fått vård.
Mannen har erkänt knivhuggen, men säger sig ha handlat i nödvärn. Tingsrätten bedömer dock inte att mannen befunnit sig i en nödvärnssituation.