I had not included the 'name attribute:
<input type="text" id="Value1" name="Value1" />
<input type="text" id="Value2" name="Value2" />
<input type="text" id="Value3" name="Value3" data-val="true" data-val-match="not the same" data-val-match-other="Value1" />
Once this was added it worked as expected.