This would not break Kirchoff's law, but it would break the LED. Take a look at the current-voltage curve for a typical LED:
Here, around the forward operating voltage (Vd) the current (i) increases vastly with tiny changes in voltage. Vd in your case is 2V, typical for standard red, green and yellow LEDs. At 20V (not shown on the graph) the theoretical current would be phenomenal! This would be enough to vaporise most of the LED's constituent elements. In reality, what would happen is that the LED would shine very brightly for a very short time indeed before letting out its "magic smoke". This is the very reason that we include current limiting resistors in LED circuits.
If you swap the 12V battery for a 2V battery, things get interesting. Now we're right where the dotted line above Vd sits - small changes in voltage give large changes in current. Here, the current is defined by an exponential equation with a strong dependency on temperature. We won't know what the actual operating current is, but it will be strongly dependent on the exact battery voltage and the temperature, along with the battery's non-ideal series resistance (acting a bit like the series resistor we normally use with a diode). However no engineer worth their salt would ever drive a LED like this. LEDs are very sensitive to voltage changes, and their brightness (the parameter we want to control) is strongly related to their current. Hence LEDs are always driven with current in mind - be that with a statically chosen resistor or a specialised circuit with a feedback loop designed to keep current constant.