分 meaning "minute(s)"
When 分 is used as a counter with the meaning "minute(s)", it is read as follows:
1分 = いっぷん
2分 = にふん
3分 = さんぷん
4分 = よんぷん
5分 = ごふん
6分 = ろっぷん
7分 = ななふん
8分 = はちふん・はっぷん
9分 = きゅうふん
10分 = じゅっぷん・じっぷん
These "irregularities" are due to sound changes. The above sound changes are particular to 分【ふん】, but gemination is often triggered by ち・く (as in いち or ろく) and they somewhat explain the readings here. (Note that っ+ふ becomes っぷ, and similarly for はひへほ, and compare also [1個]【いっこ】 from いち+こ or [6個]【ろっこ】 from ろく+こ.)
分 meaning "part(s)"
But 分 can also be used be used as a counter meaning "parts", in which case it is always read ぶん. For example when reading fractions:
⅓
さんぶん の いち
lit. one of three parts
So, when 3分 means "three parts", it is always read さんぶん, not さんぷん.
When 3分 means "three minutes", it is always read さんぷん, not さんぶん.
Similarly, よんぷん = "four minutes" and よんぶん = "four parts".
さんふん and よんふん are non-standard readings.