Swapping a 3.0 Into My E46 the Right Way

Swapping a 3.0 Into My E46 the Right Way

My 325Ci developed rod knock and a bad crank journal. Rebuilding the 2.5 made no sense when the M54B30 out of a 330 or an X5 drops right in, so the real project became sourcing a good donor and making the decisions that determine whether a swap lasts.

The donor was a clean local M54B30 with about 140k on it. Before committing I pulled the pan and looked for the things that matter: no sludge up top, and no metallic glitter or bearing material in the oil. That’s the engine equivalent of checking a used car’s service records instead of its paint.

The interesting decision was the rod bearings. The internet will tell you to do rod bearings on any BMW while you’re in there, but that advice comes from the S54 in the E46 M3, which had a genuine bearing defect. The M54B30 doesn’t. The failures you find in the forums trace back to low oil, overheating, or neglect, and plenty of these engines clear 200k on original bearings. There’s also a practical catch: the rod bolts are torque-to-yield, so you can’t just pop a cap for a look. Touching one bearing means new bolts all around. A healthy bottom end showing no symptoms earned the right to be left alone.

Everything you never want to pay labor on twice got done while the engine was out: all new seals, rebuilt the VANOS, new timing chain guides even though the old ones looked fine, new flywheel and clutch, water pump, and the rest of the maintenance list. I also safety-wired the oil pump nut, a known M54 failure point that costs pennies to prevent and an engine to ignore.

The 325 kept its own oil pan, engine mount brackets, and sensors; the 3.0 kept its intake manifold and injectors. Then the car got reprogrammed for the M54B30 calibration so it runs like it left the factory with the bigger engine.

Reliability isn’t a parts list. It’s a series of decisions about what to replace, what to leave alone, and why. The photos are on the project page if you want to see the process.