Arduino PWM control MOSFET
The trick with a computer fan is the frequency of the PWM signal - it has to be within bounds that the default Arduino PWM frequency is about 1/40th of.

Intel (probably) published this datasheet on 4-wire fan control. Section 2.1.4 has the main business.

The current draw does not come from the PWM pin - the specification says it's 8mA maximum. A good Sanyo Denki 12V computer fan can eat 3 Amps through the 12V line! The Arduino could drive the PWM control by itself (although inverted), but I recommend an NPN BJT transistor or an N-channel MOSFET even for one fan, let alone four. All you need to do is connect the Base/Gate to the Arduino PWM pin (with a resistor, if it's an NPN transistor), Emitter/Source to ground, and Collector/Drain to the PWM wire on the fan.

You will of course need to up the PWM frequency on the Arduino to between 21 and 28kHz, and have a read through the rest of the aforementioned datasheet to find the minimum duty cycle. (Spoiler alert: it's actually specified by each fan's manufacturer, not the datasheet per se, but it can easily be determined throug trial and error.)

Suitable drivers are (off the top of my tired head):

BJT Transistors:
   - 2N3904 , BC548 , 2N2222;

MOSFETs:
   - 2N7000, 2N7002, BSS138, BS170.