Breunor: The computer doesn't have an issue with 12 d4:
1) -0.28 (21 ply) 12...Qe4 13.Ng3 Qd3 14.Qb3 Na5 15.Qxf7 Rd7 16.Qe6 Re8 17.Qh3 Qxc3 18.Bg5 Qxd4 19.Bxf6 Qxf6 20.Rfe1 Qf7 21.Rad1 Rxe1+ 22.Rxe1 Kb8 23.Qxh7 Nc6 24.a4 Rd2
Best was Nf4, but the difference is only .28:
1) =0.00 (23 ply) 12.Nf4 Qa5 13.Qxa5 Nxa5 14.c4 Nc6 15.Bb2 Rhe8 16.f3 Rd6 17.Rae1 Rxe1 18.Rxe1 Nb4 19.Re3 Nxa2 20.Re7 Rd7 21.Bxf6 gxf6 22.Re8+ Rd8 23.Re7 Nb4 24.Rxf7 Nxd3 25.Nxd3 Rxd3
White starts falling behind gradually, the big problem was 20 Rad1?, as goodevens said, no real reason to give up the e-pawn:
1) -2.59 (22 ply) 20...Qxe3+ 21.Kh1 Nb2 22.Qg4+ Kb8 23.Rb1 Nd3 24.Qf5 Qd4 25.d6 Qxd6 26.Qxg5 Qg6 27.Qb5 b6 28.Qb3 Rd7 29.Rf5 Re5 30.Rbf1 Rxf5 31.Rxf5 Qe6 32.h3 Nc5 33.Qxe6 fxe6 34.Re5 Rd1+ 35.Kh2 Kb7 36.Ne4
Instead, it prefers e4 or even Qxa7:
1) -0.60 (23 ply) 20.e4 Kb8 21.Kh1 Nd6 22.Rf3 Qa6 23.Qxa6 bxa6 24.Rb1+ Kc8 25.Kg1 a5 26.Ra3 Nxe4 27.Rxa5 Nxg3 28.hxg3 Re2 29.g4 Rd6 30.Kf1 Rd2 31.Rxa7 R6xd5 32.Rc1
Trying to figure out why is a little harder - but it looks like the idea is after e4, if black plays 20 Qe3 ch 21 Kh1 Nd6 white is ahead after Rfe1 and then e5! The simple answer of protecting the e pawn here makes sense also!
2) -1.02 (22 ply) 20.Qxa7 Qxe3+ 21.Qxe3 Nxe3 22.Rxf7 Rd7 23.Rxd7 Kxd7 24.Rb1 b6 25.a4 Nxd5 26.a5 Kc6 27.axb6 cxb6 28.Nf5 Kc5 29.Rc1+ Kb4 30.Nd6 Re6 31.Nf7 g4 32.Nd8 Re4 33.Nc6+ Kb3 34.h3 Kb2 35.Rd1 Nc3 36.Rf1
So Rad1 cost about 2 full points.
goodevens is also correct that 21 Nb2 was better than Nd6:
1) -2.54 (23 ply) 21...Nb2 22.Qg4+ Kb8 23.Rb1 Nd3 24.Qf5 Qd4 25.d6 Qxd6 26.Qxg5 Qg6 27.Qb5 b6 28.Rb3 Re5 29.Qc4 Red5 30.Ra3 b5 31.Qh4 Re8 32.Rb3 c6 33.a4 Ree5 34.axb5 cxb5 35.Rbb1