| Outcome | No. | Date | Tournament | Surface | Partner | Opponents in the final | Score |
| Winner | 1. | 17 August 2003 | F1 Russia | Clay | Dmitri Sitak | A. Ageev A. Markin | 6–3, 6–2 |
| Winner | 2. | 3 December 2004 | F3 Qatar | Hard | Dmitri Sitak | J. Mathew Ravishankar Pathanjali | 6–3, 6–3 |
| Winner | 3. | 10 December 2004 | F4 Qatar | Hard | Dmitri Sitak | Yordan Kanev Ilia Kushev | 7–6(7–5), 6–0 |
| Winner | 4. | 17 December 2004 | F5 Qatar | Hard | Dmitri Sitak | Yordan Kanev Ilia Kushev | W/O |
| Winner | 5. | 18 June 2005 | F12 Spain | Hard | Dmitri Sitak | Javier Genaro-Martínez D. Vallverdu | 7–6(8–6), 7–6(7–4) |
| Winner | 6. | 27 August 2005 | F3 Korolev, Russia | Clay | Dmitri Sitak | V. Kozin A. Miller | 6–4, 7–6(7–4) |
| Winner | 7. | 15 January 2006 | F2 Germany | Hard (i) | Stéphane Bohli | P. Marx T. Popp | 6–3, 7–5 |
| Winner | 8. | 19 March 2006 | F4 Lille | Hard (i) | Stéphane Bohli | Frederico Gil F. Urban | 6–1, 6–2 |
| Runner–up | 1. | 22 July 2006 | Penza Cup, Russia | Hard | Denis Matsukevich | Murad Inoyatov Denis Istomin | 1–6, 3–6 |
| Winner | 9. | 25 February 2007 | F2 Trento, Italy | Hard (i) | Dmitri Sitak | Raphael Durek Joseph Sirianni | 7–6(7–4), 6–3 |
| Winner | 10. | 28 September 2008 | Lubbock, United States | Hard | Roman Borvanov | Alex Bogomolov, Jr. Dusan Vemic | 6–2, 6–3 |
| Winner | 11. | 8 November 2009 | F27 Birmingham, United States | Clay | Tigran Martirosyan | C. Gaston Michael Venus | 6–3, 6–4 |
| Winner | 12. | 15 November 2009 | F28 Niceville, United States | Clay | Tigran Martirosyan | S. Bangoura Denis Kudla | 6–4, 7–5 |
| Winner | 13. | 28 February 2010 | F6 Harlingen, United States | Hard | Cătălin-Ionuț Gârd | M. Bocko V. Obradovic | 6–4, 7–6(7–3) |
| Runner–up | 2. | 30 May 2010 | Carson, United States | Hard | Leonardo Tavares | Brian Battistone Nicholas Monroe | 7–5, 3–6, [4–10] |
| Winner | 14. | 6 June 2010 | Ojai, United States | Hard | Leonardo Tavares | Harsh Mankad Izak van der Merwe | 4–6, 6–4, [10–8] |
| Winner | 15. | 8 August 2010 | Beijing, China | Hard | Pierre-Ludovic Duclos | Sadik Kadir Purav Raja | 7–6(7–4), 7–6(7–5) |
| Winner | 16. | 10 April 2011 | F9 Little Rock, United States | Hard | Nima Roshan | T. Fogleman B. Rogers | 6–3, 7–5 |
| Winner | 17. | 19 June 2011 | F7 Morelia, Mexico | Hard | Marcus Daniell | R. Gonzalez Carsten Ball | 6–0, 6–3 |
| Runner–up | 3. | 27 August 2011 | F4 Medellín, Colombia | Clay | P. Aarts | R. Carvalho Fabiano de Paula | 3–6, 3–6 |
| Runner–up | 4. | 18 March 2012 | F7 Calabasas, United States | Hard | Nima Roshan | Maxim Dubarenco Brydan Klein | 6–7(5–7), 4–6 |
| Runner–up | 5. | 8 April 2012 | Tallahassee, United States | Hard | Blake Strode | Martin Emmrich Andreas Siljeström | 2–6, 6–7(4–7) |
| Runner–up | 6. | 6 October 2012 | F37 Antalya, Turkey | Hard | E. Eremin | Maxim Dubarenco Brydan Klein | 4–6, 6–3, [9–11] |
| Runner–up | 7. | 6 January 2013 | Nouméa, New Caledonia | Hard | Jose Statham | Samuel Groth Toshihide Matsui | 6–7(6–8), 6–1, [4–10] |
| Winner | 18. | 24 March 2013 | F1 Ipswich, Australia | Hard | Jose Statham | Jacob Grills Dane Propoggia | 6–3, 6–1 |
| Runner–up | 8. | 14 April 2013 | F9 Oklahoma City, United States | Hard | Saketh Myneni | Jean-Yves Aubone Dennis Nevolo | 1–6, 5–7 |
| Runner–up | 9. | 29 July 2013 | Oberstaufen, Germany | Clay | Stephan Fransen | Dominik Meffert Philipp Oswald | 1–6, 6–3, [12–14] |
| Winner | 19. | 6 October 2013 | São Paulo, Brazil | Clay | Roman Borvanov | Sergio Galdós Guido Pella | 6–4, 7–6(7–3) |
| Runner–up | 10. | 24 November 2013 | Toyota, Japan | Synthec (i) | Marcus Daniell | Chase Buchanan Blaž Rola | 6–4, 3–6, [4–10] |
| Runner–up | 11. | 6 April 2014 | León, Mexico | Hard | Marcus Daniell | Samuel Groth Chris Guccione | 3–6, 4–6 |
| Winner | 20. | 9 May 2014 | Rome, Italy | Clay | Radu Albot | Andrea Arnaboldi Flavio Cipolla | 4–6, 6–2, [11–9] |
| Runner–up | 12. | 8 June 2014 | Arad, Romania | Clay | Radu Albot | Franko Škugor Antonio Veić | 4–6, 6–7(3–7) |
| Winner | 21. | 20 July 2014 | Granby, Canada | Hard | Marcus Daniell | Jordan Kerr Fabrice Martin | 7–6(7–5), 5–7, [10–5] |
| Runner–up | 13. | 3 August 2014 | Vancouver, Canada | Hard | Marcus Daniell | Austin Krajicek John-Patrick Smith | 3–6, 6–4, [8–10] |
| Runner–up | 14. | 9 November 2014 | Traralgon 2, Australia | Hard | Marcus Daniell | Brydan Klein Dane Propoggia | 6–7(6–8), 6–3, [6–10] |
| Runner–up | 15. | 16 November 2014 | Keio, Japan | Hard | Marcus Daniell | Bradley Klahn Matt Reid | 6–4, 4–6, [7–10] |
| Runner–up | 16. | 10 May 2015 | Aix-en-Provence, France | Clay | Nicholas Monroe | Robin Haase Aisam-ul-Haq Qureshi | 1–6, 2–6 |
| Winner | 22. | 16 August 2015 | Aptos, United States | Hard | Chris Guccione | Yuki Bhambri Matthew Ebden | 6–4, 7–6(7–2) |
| Runner–up | 17. | 18 October 2015 | Tashkent, Uzbekistan | Hard | Andre Begemann | Sergey Betov Mikhail Elgin | 4–6, 4–6 |
| Winner | 23. | 13 March 2016 | Puebla, Mexico | Hard (i) | Marcus Daniell | Santiago González Mate Pavić | 3–6, 6–2, [12–10] |